前段时间面试被Python巨基础的知识点卡挂了,学习之后今天整理一下。
结论:不可变数据类型,参数的内存地址和数据本身有关,和参数无关。可变的序列类型和映射类型等,参数的内存地址指定的是数据类型的外包装盒子,跟里面数据的变化没有关联。
Python中的基础数据类型有数字类型(int,float,complex)、文本类型(str)、序列类型(tuple元组、list列表、range范围)、映射类型(dict字典)、集合(set)。
其中数字类型、文本类型和元组,是不可变的。
结合以前对其他语言的掌握,发现用贴标签来理解参数、数据和内存地址的关系最合适不过了。
1,不可变数据类型
int1 = 100
int2 = 200
int3 = int1
print(f"int1的内存地址是:{id(int1)},int1={int1}")
print(f"int2的内存地址是:{id(int2)},int2={int2}")
print(f"int3的内存地址是:{id(int3)},int3={int3}")
int1 = 300
int2 = 400
print(f"int1的内存地址是:{id(int1)},int1={int1}")
print(f"int2的内存地址是:{id(int2)},int2={int2}")
print(f"int3的内存地址是:{id(int3)},int3={int3}")