《Python 3.x入门到应用实践》 — 3.2 赋值运算符
3.2 赋值运算符
赋值运算符“=”至少由两个操作数组成,功能是将“=”号右边的值赋给等号左边的变量。许多程序设计语言的初学者最不能理解的就是等号“=”在程序设计语言中的含义,很容易将它和数学上的等于功能混淆。在程序设计语言中,“=”号主要用于赋值,而我们从数学角度来理解,“=”以往都认为是“等于”的概念。例如下面的程序语句:
sum = 0;
sum = sum + 1;
上述程序语句中的sum = 0还容易理解其所代表的意义,但是对于sum = sum + 1这条语句,许多初学者往往无法想通这条语句所代表的含义。
其实Python程序设计语言中的“=”主要用于“赋值”(assignment),我们可以想象:当声明变量时会分配内存并安排好内存的地址,等到使用赋值运算符“=”把具体的数值设置给这个变量时,才会让这个内存地址对应的内存空间来存储这个具体的数值。也就是说,sum = sum + 1可以看成是将sum内存地址中存储的原数据值加1后的结果,再重新赋值给sum内存地址对应的内存空间。
在赋值运算符“=”的右侧可以是常数、变量或表达式,最终都将把值赋给左侧的变量;而运算符左侧只能是变量,不能是数值、函数或表达式等。例如,表达式X-Y=Z就是不合法的程序语句。
Python赋值运算符有两种赋值方式,即单一赋值和复合赋值。
1. 单一赋值
将赋值运算符“=”右侧的值赋给左侧的变量,例如:
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 #在一行里以分号串接两条程序语句或表达式
2. 复合赋值
复合赋值运算符是由赋值运算符“=”与其他运算符结合而成的。先决条件是“=”右侧的源操作数必须有一个和左边接收赋值的操作数相同,如果一个表达式含有多个复合赋值运算符,那么运算过程必须从右侧开始,逐步进行到左侧,例如:
a += 1 #相当于a = a + 1
a -= 1 #相当于a = a - 1
以“A += B;”复合赋值语句为例,它是赋值语句“A = A + B;”的精简写法,也就是先执行A+B的计算,接着将计算结果赋值给变量A。表3-2中除了第一个“=”运算符以外,其他赋值运算符都是复合赋值运算符。
表3-2
在Python中,单个等号“=”表示赋值,连续两个等号“==”才是关系比较运算符的“相等”,不可混用。
注意,使用赋值运算符时,如果要将一个变量赋值给另一个变量,第一个变量必须先设置初值,否则就会出现错误。例如num = num*10,因为还没为num变量赋初值,如果直接使用赋值运算符,就会出现错误,因为num变量没有被设置过任何初值。接下来是赋值运算符综合应用的范例程序。
【范例程序:assign_operator.py】 赋值运算符的综合应用
01 # -*- coding: utf-8 -*-
02 """
03 赋值运算符练习
04 """
05
06 a = 1
07 b = 2
08 c = 3
09
10 x = a + b * c
11 print("{}".format(x))
12 a += c
13 print("a={0}".format(a,b)) #a=1+3=4
14 a -= b
15 print("a={0}".format(a,b)) #a=4-2=2
16 a *= b
17 print("a={0}".format(a,b)) #a=2*2=4
18 a **= b
19 print("a={0}".format(a,b)) #a=4**2=16
20 a /= b
21 print("a={0}".format(a,b)) #a=16/2=8
22 a //= b
23 print("a={0}".format(a,b)) #a=8//2=4
24 a %= c
25 print("a={0}".format(a,b)) #a=4%3=1
26 s = "Python" + "很好玩"
27 print(s)
程序的执行结果如图3-2所示。
图3-2
程序代码解析:
第12、13行:将a与c相加后的结果赋值给变量a,再将a的结果值输出。
第14、15行:将a与b相减后的结果赋值给变量a,再将a的结果值输出。
第16、17行:将a与b相乘后的结果赋值给变量a,再将a的结果值输出。
第18、19行:将a与b进行乘幂后的结果赋值给变量a,再将a的结果值输出。
第20、21行:将a与b相除后的结果赋值给变量a,再将a的结果值输出。
第22、23行:将a与b整数相除的结果赋值给变量a,再将a的结果值输出。
第24、25行:将a与b取余数的结果赋值给变量a,再将a的结果值输出。
- 点赞
- 收藏
- 关注作者
评论(0)