Python-纯字母字符串内存地址一样,否则不一样,如下案例

1 Python-纯字母字符串内存地址一样,否则不一样,如下案例

str1="abc"
str2="abc" #同样内容的纯字母字符串,str1 和 str2 内存地址一样,如果包含了空格,中文字符,特殊字符等,两者内容不一样,如下案例
print(id(str1))
print(id(str2))

str2="abd"
print(id(str1))#对str2重新赋值,str1的地址仍然不变
print(id(str2))

str1="abc dd"#有空格 str1 str2 地址不一样
str2="abc dd"
print(id(str1))
print(id(str2))

str1="abc@"#有特殊字符 str1 str2 地址不一样
str2="abc@"
print(id(str1))
print(id(str2))

运行结果如下:

1440505762224
1440505762224
1440505762224
1440547873968
1440547874992
1440547873904
1440547873840
1440547873520

2. 对于整型共享地址方面:

[-5到256] (包含2个端点值)这个区间是共享内存地址,超过这个不共享内存地址。

举例如下:

#整数[-5到256]这个区间是共享内存地址,超过这个不共享内存地址。
inta=-5 #整数[-5到256]这个区间是共享内存地址,超过这个不共享内存地址。
intb=-5
print(id(inta))
print(id(intb))
print("++++++")

inta=256 #整数[-5到256]这个区间是共享内存地址,超过这个不共享内存地址。
intb=256
print(id(inta))
print(id(intb))
print("++++++")

inta=257#大于256   不共享内存地址
intb=257
print(id(inta))
print(id(intb))
print("++++++")


inta=-6#小于-5 不共享内存地址
intb=-6
print(id(inta))
print(id(intb))
print("++++++")

运行结果如下:

140714010255568
140714010255568
++++++
140714010263920
140714010263920
++++++
1440537599312
1440537599760
++++++
1440537598960
1440537599184
++++++

3 #浮点数的内存地址都不一样,哪怕是完全相同的数字

floata=2.0  #浮点数的内存地址都不一样,哪怕是完全相同的数字
floatb=2.0
print(id(floata))
print(id(floatb))

运行结果如下:

1440537599216
1440537599632

 

你可能感兴趣的:(Python,python)