1.5.5 赋值运算符

183 阅读3分钟

基本赋值运算符

“=”是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:

#将字面量(直接量)赋值给变量
n1 = 10
f1 = 42.5
s1 = "http://www.baidu.com/"
#将一个变量的值赋给另一个变量
n2 = m1
f2 = h1
#将某些运算的值赋给变量
sum1 = 23 + 44 
sum2 = n1 % 6
s2 = str(1234)  #将数字转换成字符串
s3 = str(100) + "abc"  #字符串拼接结果“100abc”

连续赋值

Python 中的赋值表达式也是有值的,它的值就是被赋的那个值,或者说是左侧变量的值;如果将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值。请看下面的例子: a = b = c = 10

=具有右结合性,我们从右到左分析这个表达式: c = 10 表示将 10 赋值给 c,所以 c 的值是 10;同时,c = 10 这个子表达式的值也是 10。 b = c = 10 表示将 c = 10 的值赋给 b,因此 b 的值也是 10。 以此类推,a 的值也是 10。

a、b、c 三个变量的值都是 10。 “=” 和 “==”是两个不同的运算符,= 用来赋值,而 == 用来判断两边的值是否相等,不要混淆

扩展后的赋值运算符

“=”还可与其他运算符(包括算术运算符、位运算符和逻辑运算符)相结合,扩展成为功能更加强大的赋值运算符。扩展后的赋值运算符将使得赋值表达式的书写更加优雅和方便。

Python 扩展赋值运算符

运算符	说 明	用法举例	等价形式
=	最基本的赋值运算	x = y	x = y
+=	加赋值	x += y	x = x + y
-=	减赋值	x -= y	x = x - y
*=	乘赋值	x *= y	x = x * y
/=	除赋值	x /= y	x = x / y
%=	取余数赋值	x %= y	x = x % y
**=	幂赋值	x **= y	x = x ** y
//=	取整数赋值	x //= y	x = x // y
&=	按位与赋值	x &= y	x = x & y
|=	按位或赋值	x |= y	x = x | y
^=	按位异或赋值	x ^= y	x = x ^ y
<<=	左移赋值	x <<= y	x = x << y,这里的 y 指的是左移的位数
>>=	右移赋值	x >>= y	x = x >> y,这里的 y 指的是右移的位数

举个简单的例子:

a = 21
b = 10
c = 0
 
c = a + b
print ("1 - c 的值为:", c)
 
c += a
print ("2 - c 的值为:", c )
 
c *= a
print ("3 - c 的值为:", c) 
 
c /= a 
print ("4 - c 的值为:", c) 
 
c = 2
c %= a
print ("5 - c 的值为:", c)
 
c **= a
print ("6 - c 的值为:", c)
 
c //= a
print ("7 - c 的值为:", c)

运行结果为:

1 - c 的值为: 31
2 - c 的值为: 52
3 - c 的值为: 1092
4 - c 的值为: 52
5 - c 的值为: 2
6 - c 的值为: 2097152
7 - c 的值为: 99864

通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。

注意: 这种赋值运算符只能针对已经存在的变量赋值,因为赋值过程中需要变量本身参与运算,如果变量没有提前定义,它的值就是未知的,无法参与运算。例如,下面的写法就是错误的: n -= 10

该表达式等价于 n = n - 10,n 没有提前定义,所以它不能参与加法运算。

本文由mdnice多平台发布