讨厌烦人的编码问题''
Posted zzy7372
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了讨厌烦人的编码问题''相关的知识,希望对你有一定的参考价值。
s = "alex 是 大 xx" abc = id(s) # 得到内存地址 print(abc) lst = ["大阳哥", "佳琪哥", "小花生", "燃哥"] print(id(lst)) # 就是一个内存地址. 毫无意义 lst = ["周杰伦", "燃哥"] lst1 = ["周杰伦", "燃哥"] print(id(lst)) print(id(lst1)) s = "燃哥" s1 = "燃哥" # 小数据池. 会对字符串进行缓存, 为了节省内存 print(id(s)) print(id(s1)) tu = ("燃哥", "周杰伦") tu1 = ("燃哥", "周杰伦") print(id(tu), id(tu1)) dic = {"a": "b", "c":"d"} dic1 = {"a": "b", "c":"d"} print(id(dic), id(dic1)) a = 10 b = 10 print(id(a), id(b)) 布尔也有, a = True b = True print(id(a), id(b)) -5 a = 257 b = 257 print(id(a), id(b)) a = "小威" b = "小威" print(id(a), id(b)) 1. id() 查看内存地址 2. str 有小数据池的 == is id == 判断. 左右两端是否相等和一致, 比较的是内容 is 判断. 判断的是内存地址 id()的值来判断 内存地址 lst = ["马化腾", "小威"] lst2 = ["马化腾", "小威"] print(lst == lst2) # True print(lst is lst2) # False s = "alex" print("1111111111") print("1111111111") print("1111111111") print("1111111111") print("1111111111") print("1111111111") print("1111111111") print("1111111111") print("1111111111") s2 = "alex" print(s == s2) # True print(s is s2) # True. 小数据池
?数据池(常量池): 把我们使?过的值存储在?数据池中.供其他的变量使?.
?数据池给数字和字符串使?, 其他数据类型不存在.
对于数字: -5~256是会被加到?数据池中的. 每次使?都是同?个对象.
对于字符串:
- 如果是纯?字信息和下划线. 那么这个对象会被添加到?数据池
- 如果是带有特殊字符的. 那么不会被添加到?数据池. 每次都是新的
- 如果是单?字?*n的情况. ‘a‘*20, 在20个单位内是可以的. 超过20个单位就不会添加到?数据池中
以上是关于讨厌烦人的编码问题''的主要内容,如果未能解决你的问题,请参考以下文章
python2(中文编码问题):UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1
python 编码问题:'ascii' codec can't encode characters in position 的解决方案
python编码问题——解决python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xXX(