Python

Python变量

2019-05-18  本文已影响0人  Recalcitrant

Python代码执行可视化

http://www.pythontutor.com/

一、可变类型与不可变类型

不可变类型:内存中的数据不允许被修改

数字类型:int, bool, float, complex, long(2.x)
字符串:str
元组:tuple

对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收。

可变类型:内存中的数据可以被修改

列表:list
字典:dict
自定义类型(class定义的类型)

示例:

a = 10
b = a       # 值传递(创建了一个变量b,绑定到了常量10上)
b = 100     # 将变量b重新绑定到了常量100上(因为常量10不可以被修改)
print(a)
b = a
b = 100
a = [1,2,3,4,5,6,7,8,9,10]
b = a       # 地址传递(创建了一个变量b,绑定到了列表[1,2,3,4,5,6,7,8,9,10]上)
b[1] = 10   # 将变量b绑定的列表第二个元素值修改为10(因为列表可以被修改)
print(a)
b = a
b[1] = 10
运行结果

二、== 和 is

== 运算符:比较两个对象的值(对象中保存的数据)
is 运算符:比较对象的引用(标识)

通常,我们关注的是值,而不是标识,因此 Python 代码中 == 出现的频率比 is 高。
示例:

a = [1,2,3,4,5,6,7,8,9,10]
b = [1,2,3,4,5,6,7,8,9,10]
print(a == b)
print(a is b)
运行结果
上一篇 下一篇

猜你喜欢

热点阅读