赋值运算符“=”至少由两个操作数组成,功能是将“=”号右边的值赋给等号左边的变量。许多程序设计语言的初学者最不能理解的就是等号“=”在程序设计语言中的含义,很容易将它和数学上的等于功能混淆。在程序设计语言中,“=”号主要用于赋值,而我们从数学角度来理解,“=”以往都认为是“等于”的概念。例如下面的程序语句:
sum=0
sum=sum+1
上述程序语句中的sum=0还容易理解其所代表的意义,但是对于sum=sum+1这条语句,许多初学者往往无法想通这条语句所代表的含义。其实Python程序设计语言中的“=”主要用于“赋值”(assignment),我们可以想象:当声明变量时会分配内存并安排好内存的地址,等到使用赋值运算符“=”把具体的数值设置给这个变量时,才会让这个内存地址对应的内存空间来存储这个具体的数值。也就是说,sum=sum+1可以看成是将sum内存地址中存储的原数据值加1后的结果,再重新赋值给sum内存地址对应的内存空间。
在赋值运算符“=”的右侧可以是常数、变量或表达式,最终都将把值赋给左侧的变量;而运算符左侧只能是变量,不能是数值、函数或表达式等。例如,表达式X-Y=Z就是不合法的程序语句。
Python赋值运算符有两种赋值方式,即单一赋值和复合赋值。
将赋值运算符“=”右侧的值赋给左侧的变量,例如:
a=10
赋值运算符除了一次赋一个数值给变量外,还能够同时将同一个数值赋给多个变量。如果要让多个变量同时具有相同的变量值,我们就可以一起赋予变量值。例如,想让变量x、y、z的值都为100,赋值语句可以如下编写:
x=y=z=100
当我们想要在同一行程序语句中给多个变量赋值时,可以使用“,”分隔变量。例如,要让变量x的值为10,变量y的值为20,变量z的值为30,编写赋值语句如下:
x,y,z=10,20,30
Python还允许在一行里以“;”来连续编写几条不同的程序语句,分隔不同的表达式。例如以下两行程序代码:
sum=10
index=12
可以使用“;”将上述两行语句写在同一行。请看以下示范:
sum=10;index=12
复合赋值运算符是由赋值运算符“=”与其他运算符结合而成的。先决条件是“=”右侧的源操作数必须有一个和左边接收赋值的操作数相同,如果一个表达式含有多个复合赋值运算符,那么运算过程必须从右侧开始,逐步进行到左侧,例如:
a+=1 相当于a=a+1
a-=1 相当于a=a-1
以“A+=B;”复合赋值语句为例,它是赋值语句“A=A+B;”的精简写法,也就是先执行A+B的计算,接着将计算结果赋值给变量A。
在Python中,单个等号“=”表示赋值,连续两个等号“==”才是关系比较运算符的“相等”,不可混用。
注意,使用赋值运算符时,如果要将一个变量赋值给另一个变量,第一个变量必须先设置初值,否则就会出现错误。例如num=num*10,因为还没为num变量赋初值,如果直接使用赋值运算符,就会出现错误,因为num变量没有被设置过任何初值。接下来是赋值运算符综合应用的范例程序。