赋值运算符主要用来为变量(或常量)赋值,在使用时,既可以直接用基本赋值运算符“=”将右侧的值赋给左侧的变量,右侧也可以在进行某些运算后再赋值给左侧的变量。
= 基本赋值运算符
Python 使用“=”作为赋值运算符,常用于将表达式的值赋给另一个变量。例如如下代码:
# 为变量st赋值为Python
st = "Python"
# 为变量pi赋值为3.14
pi = 3.14
# 为变量visited赋值为True
visited = True
除此之外,也可使用赋值运算利将一个变量的值赋给另一个变量。例如,如下代码也是正确的:
# 将变量st的值赋给st2
st2 = st
print(st2)
值得指出的是,Python 的赋值表达式是有值的,赋值表达式的值就是被赋的值,因此 Python 支持连续赋值。例如,如下代码也是正确的:
a = b = c = 20
上面程序将 c=20。这个表达式的值赋给变量 b,由于赋值表达式本身也有值,就是被赋的值,因此 c=20 这个表达式的值就是 20,故 b 也被赋值为 20;依此类推,变量 a 也被赋值为 20。
赋值运算符还可用于将表达式的值赋给变量。例如,如下代码也是正确的:
d1 = 12.34
# 将表达式的值赋给d2
d2 = d1 + 5
# 输出d2的值
print("d2的值为:%g" % d2 ) # 17.34
需要初学者特别注意的是,= 和 == 的含义完全不同,前者是赋值号,后者是等号,千万不要混淆。
扩展后的赋值运算符
= 赋值运算符还可与其他运算符(算术运算符、位运算符等)结合,成为功能更强大的赋值运算符,如表 1 所示。
表 1 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 = 1
b = 2
a += b
print("a+b=",a)#1+2=3
a -= b
print("a-b=",a)#3-2=1
a *= b
print("a*b=",a)#1*2=2
a /= b
print("a/b=",a)#2/2=1.0
a %= b
print("a%b=",a)#1%2=1.0
c = 0
d = 2
c &= d
print("c&d=",c)#0&2=0
c |= d
print("c|d=",c)#0|2=2
运行结果为:
a+b= 3
a-b= 1
a*b= 2
a/b= 1.0
a%b= 1.0
c&d= 0
c|d= 2
需要注意的是,程序中 a 的值通过 /= 和 %= 运算后,类型隐式改变成了浮点型,而浮点数是不能进行 &、|、^、<< 和 >> 运算的,否则 Python 解释器会报错(这些都属于位运算符,具体用法后续文章会详细介绍)。
通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。