python中(id,is,==,)小数据池,代码块
id, is, ==
id是内存地址,利用id()内置函数去查询一个数据的内存地址
is是判断两边的内存地址是否相等
== 是比较的两边的数值是否相等。
代码块
python中真正意义的代码块是什么?
一个模块,一个函数,一个类,一个文件等都是一个代码块。
def func():
print(333)
class A:
name = 'alex'
交互模式下,每一行是一个代码块。
>>> i1 = 1000 可以理解为这一行在一个文件中。
>>> i2 = 1000 可以理解为这一行在另一个文件中。
小数据池
前提:int,str,bool
1,节省内存。
2,提高性能和效率。
小数据池是什么?
在内存中,创建一个'池',提前存放了 -5 ~256 的整数,一定规则的字符串。
后续程序中,如果设置的变量指向的是小数据池的内容,那么就不会再内存中重新创建。
小数据池与代码块的关系。
同一个代码块:python在执行时,遇到了初始化对象命令,他会将这个变量名和数值放到一个字典中,
再次遇到他会从这字典中寻找。
不同代码块:python在执行时,直接从小数据池中寻找,满足条件id相同。
编码
str --->bytes: encode
bytes--->str: decode
python3x:
英文:
str: 表现形式:s1 = 'alex'
内部编码方式: unicode
bytes:表现形式:s1 = b'alex'
内部编码方式: 非unicode
中文:
str: 表现形式:s1 = '太白'
内部编码方式: unicode
bytes:表现形式:s1 = b'\xe2\xe2\xe2\xe2\xe2\xe2'
内部编码方式: 非unicode
只有当你想要存储一些内容到文件中,或者通过网络传输时,才要用的bytes类型