赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。
Python 中最基本的赋值运算符是等号=
;结合其它运算符,=
还能扩展出更强大的赋值运算符。
基本赋值运算符
=
是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:
- #将字面量(直接量)赋值给变量
- n1 = 100
- f1 = 47.5
- s1 = “http://c.biancheng.net/python/”
- #将一个变量的值赋给另一个变量
- n2 = n1
- f2 = f1
- #将某些运算的值赋给变量
- sum1 = 25 + 46
- sum2 = n1 % 6
- s2 = str(1234) #将数字转换成字符串
- s3 = str(100) + “abc”
连续赋值
Python 中的赋值表达式也是有值的,它的值就是被赋的那个值,或者说是左侧变量的值;如果将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值。请看下面的例子:
a = b = c = 100
=
具有右结合性,我们从右到左分析这个表达式:
- c = 100 表示将 100 赋值给 c,所以 c 的值是 100;同时,c = 100 这个子表达式的值也是 100。
- b = c = 100 表示将 c = 100 的值赋给 b,因此 b 的值也是 100。
- 以此类推,a 的值也是 100。
最终结果就是,a、b、c 三个变量的值都是 100。
= 和 ==
= 和 == 是两个不同的运算符,= 用来赋值,而 == 用来判断两边的值是否相等,千万不要混淆。
扩展后的赋值运算符
=
还可与其他运算符(包括算术运算符、位运算符和逻辑运算符)相结合,扩展成为功能更加强大的赋值运算符,如表 1 所示。扩展后的赋值运算符将使得赋值表达式的书写更加优雅和方便。
运算符 | 说 明 | 用法举例 | 等价形式 |
---|---|---|---|
= | 最基本的赋值运算 | 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)
运行结果为:
n1=20
f1=255.00
通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。
但是请注意,这种赋值运算符只能针对已经存在的变量赋值,因为赋值过程中需要变量本身参与运算,如果变量没有提前定义,它的值就是未知的,无法参与运算。例如,下面的写法就是错误的:
n += 10
该表达式等价于 n = n + 10,n 没有提前定义,所以它不能参与加法运算。
原文地址:http://www.cnblogs.com/qlsh/p/16800572.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性