讨厌烦人的编码问题''
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个单位就不会添加到⼩数据池中

浙公网安备 33010602011771号