购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

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的结果值输出。 X5BRQXMKy6UhPL34FjOQ8WPdBU8mZ5C9ph1KANahSbONbLxZzqf+JJAxMrzmKBMD

点击中间区域
呼出菜单
上一章
目录
下一章
×