Python变量和数据类型的理解

1、不可变类型

整型,字符串,浮点型,元组

a = (1,2)  
# 这句意思是a --> (1,2),a和(1,2)为同样地址。
a[1] = 3
# 尝试把a指向的(1,2)中的2修改为3,不可行,报错
b = a
# b的地址也为(1,2)的地址
a = (1,3)
#这句意思是a重新指向了内存中的(1,3),可行,a与(1,3)地址相同。
print(id(a),id(b),id((1,3)),id((1,2)))
# 打印结果是id(a)跟id((1,3))相等,而id(b)跟id((1,2))相等

2、可变类型

列表,字典,集合

a = [1,2]
print(id(a),id([1,2]))
# id(a)和id([1,2])不同
b = a
print(id(a),id(b),id([1,2]))
# 结果是id(a)和id(b)相等,与id([1,2])不等。
a = [1,3]
print(b)
# 结果是b = [1,2]
b[1] = 3
print(b)
# 结果是b = [1,3]

总结:
1、变量名 = 不可变类型 例: a = (1,2)
那么该变量名和该值是同一个地址,
变量之间赋值传递的是该值的地址该值在内存中不允许修改
对变量重新赋值的话是该变量名就是另一个地址了(但始终变量地址和值的地址相等)。

2、变量名 = 可变类型 例: a = [1,2]
那么变量名本身也会有个地址,指向了该值(变量和值的地址不同)。
变量之间赋值传递的是该变量的地址该值可进行修改
对变量重新赋值的话,变量的地址也会改变(但变量地址和值的地址始终不同)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code_For_Nothing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值