== 比较两边的值 is 比较的是内存地址
id( ) ---- 获取内存地址
python 小数据池中的数据内存地址是一样的
数字: 范围 :-5 ~ 256 (python终端可验证,pycharm 中n = - 6 和 n1 = -6 is 运行结果为TRUE,因为它会自行修正)
n = -6
n1 = -6
print(n is n1) # False
字符串: 字符串中如果有特殊字符( + - * / 空格 @ 等),他们的内存地址就不一样
a = 'alex@'
a1 = 'alex@'
print(a is a1) #False
字符串中单个*20以内他们的内存地址一样,单个*21 以上 内存地址不一致
注意: pycharm是个坑,一个py文件中所有相同的字符串,一般都是使用一样的内存地址
a = 'a'*20
b = 'a'*20
print( a is b) #True
a = 'a'*21
b = 'a'*21
print( a is b) #False
a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
print(a is b) #Ture
python3 程序运行阶段 使用的是unicode,显示所有的内容, (unicode不能进行传输和存储,只能在内存中)
bytes 类型 传输和存储都是使用bytes 类型
pycharm 存储的时候默认使用utf-8编码
汉字编码位数
utf-8 3位 gbk 2位
encode( 编码方式 ) ---- 拿到明文编码后对应的字节
decode( 编码方式 ) ---- 将编码后的字节解码成对应的明文
用什么方式编码,就要用什么方式解码
作业讲解:
循环迭代时不可改变字典大小,
解决方案: 循环迭代时记录到list里 ,然后迭代list,删除对应字典元素