day06 --编码及知识点补充

Posted lianghui-lianghui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day06 --编码及知识点补充相关的知识,希望对你有一定的参考价值。

一,is和==的区别

  1,id :通过id我们可以查看到一个变量表示的值在内存中的地址

    用id()表示,括号里面放的是想要查看地址的变量

    字符串的数据地址是一样的,列表的数据地址是不一样的

s = "alex"
print(id(s))   #4434277576
s = "alex"
print(id(s))  #4434277576

lst = [1,2,3]
print(id(lst))  #4520564552
lst1 = [1,2,3]
print(id(lst1))  #4520565512

在python中,命令行代码和py文件中的代码运行的效果可能是不一样的

 

小数据池(常量池):把我们使用过的值存储在小数据池中,使其他的变量使用

        小数据池给数字和字符串使用,其他数据类型不存在

     对于数字:-5~256是会被加到小数据池中的,每次使用都是同一个对象

       对于字符串:

        1,如果是纯文字信息和下划线,那么这个对象会被添加到小数据池

        2,如果带有特殊字符的话,不会被添加到小数据池,每次都是全新的

        3,如果是单一字母*n的情况,"a"*20,在20个单位内是可以的,超过20个单位,就不会被添加到小数据池

       *** (一般情况下,在py文件中,如果只是单纯的定义一个字符串,一般情况下会被添加到小数据池中的,我们可以这样认为:在使用字符串的时候,python会帮我们把字符串进行缓存,在下次使用的时候直接指向这个字符串即可,可以节省很多内存)    这个问题官方也没有给出一个完美的结论和定论,所以不要太纠结

     总结:  is比较的是地址

              ==比较的是值

 

二,编码的补充:

    1,在python2中,默认使用的事ASCII码,不支持中文,所以在python2中编写中文的时候要在开头写入: #-*- encoding:utf-8 -*-

  2,在python3中,内存使用的事Unicode码

bytes的表现形式:
1. ?文 b‘alex‘ ?文的表现形式和字符串串没什什么

2. 中?文 b‘xe4xb8xad这是?一个字的UTF-8bytes表现形式

 

     字符串在传输时转化成bytes==> encode(字符集)来完成

: ?文编码后的结果和字符串串?一. 中?文编码后的结果根据编码的不同. 编码结果 也不同. 我们能看到. ?一个中?文的UTF-8编码是3个字节. ?一个GBK的中?文编码是2个字节.

 


以上是关于day06 --编码及知识点补充的主要内容,如果未能解决你的问题,请参考以下文章

自学it18大数据笔记-第一阶段Java-day05-day06-day07-day08

Day06

流水账2021-06-30 Day-20

day06_06 字典操作01

流水账2021-06-25 Day-05

python—day06