零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

2.3.2 变量的赋值

Python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程。每个变量在内存中创建,都包括变量的标识、名称和数据这些信息。例如:


x = 1

上面的代码创建了一个变量x,并且赋值为1,如图2-1所示。

图2-1 变量的内部结构

Python中一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。下面的代码演示了Python的变量声明以及赋值操作。


01     # 一次新的赋值操作,将创建一个新的变量
02     x = 1               # 定义变量并赋值
03     print (id(x))          # id()函数用于获取对象的内存地址
04     x = 2
05     print( id(x))

【代码说明】

·第2行代码定义了一个名为x的变量,该变量的初始值为1。

·第3行代码,输出变量x的内存地址。输出结果如下。


140732879565056

·第4行代码再次定义了一个名为x的变量,该变量的初始值为2。该变量与前面的变量x并不是同一变量。

·第5行代码,输出变量x的内存地址。输出结果如下。


140732879565088

如果变量没有赋值,Python将认为该变量不存在。例如:


print (y)

运行后,解释器提示:


NameError: name 'y' is not defined

在变量y没有赋值的前提下,不能直接输出y的值。每个变量在使用前都必须赋值,这样可以避免由于变量的空值引起的一些异常。Python支持对一些变量同时赋值的操作,例如:


01     # 给多个变量赋值
02     a = (1, 2, 3)
03     (x, y, z) = a
04     print( "x =", x)
05     print( "y =", y)
06     print( "z =", z)

【代码说明】

·第2行代码定义了一个序列a,这个序列有3个值:1、2、3。

·第3行代码,把序列a的值分别赋值给序列(x,y,z)中的变量x、y、z。

·第4行代码输出变量x的值。输出结果:


x = 1

·第5行代码输出变量y的值。输出结果:


y = 2

·第6行代码输出变量z的值。输出结果:


z = 3

通过序列的装包和拆包操作,实现了同时给多个变量赋值。关于序列的概念参见第4章的内容。