赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。
Python中最基本的赋值运算符是等号=;结合其它运算符,=还能扩展出更强大的赋值运算符。
基本赋值运算符
=是Python中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:
#将字面量(直接量)赋值给变量
n1 = 100
f1 = 47.5
s1 = "https://topic.kaikeba.com/biancheng/python"
#将一个变量的值赋给另一个变量
n2 = n1
f2 = f1
#将某些运算的值赋给变量
sum1 = 25 + 46
sum2 = n1 % 6
s2 = str(1234) #将数字转换成字符串
s3 = str(100) + "abc"123456789101112复制代码类型:[python]
连续赋值
Python中的赋值表达式也是有值的,它的值就是被赋的那个值,或者说是左侧变量的值;如果将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值。请看下面的例子:
a = b = c = 1001复制代码类型:[python]
=具有右结合性,我们从右到左分析这个表达式:
c=100表示将100赋值给c,所以c的值是100;同时,c=100这个子表达式的值也是100。
b=c=100表示将c=100的值赋给b,因此b的值也是100。
以此类推,a的值也是100。
最终结果就是,a、b、c三个变量的值都是100。
=和==
=和==是两个不同的运算符,=用来赋值,而==用来判断两边的值是否相等,千万不要混淆。
扩展后的赋值运算符
=还可与其他运算符(包括算术运算符、位运算符和逻辑运算符)相结合,扩展成为功能更加强大的赋值运算符,如表1所示。扩展后的赋值运算符将使得赋值表达式的书写更加优雅和方便。
表1Python扩展赋值运算符
运算符 |
说 明 |
用法举例 |
等价形式 |
= |
最基本的赋值运算 |
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 指的是右移的位数 |
这里举个简单的例子:
n1 = 100
f1 = 25.5
n1 -= 80 #等价于 n1=n1-80
f1 *= n1 - 10 #等价于 f1=f1*( n1 - 10 )
print("n1=%d" % n1)
print("f1=%.2f" % f1)123456复制代码类型:[python]
运行结果为:
n1=20
f1=255.00
通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。
但是请注意,这种赋值运算符只能针对已经存在的变量赋值,因为赋值过程中需要变量本身参与运算,如果变量没有提前定义,它的值就是未知的,无法参与运算。例如,下面的写法就是错误的:
n += 101复制代码类型:[python]
该表达式等价于n=n+10,n没有提前定义,所以它不能参与加法运算。
版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(http://www.kuojiu.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。