目录
python中的运算符
赋值运算符
运算符 | 描述 | 举例 |
---|---|---|
= | 等于运算符 | c = a + b |
+= | 加法运算符 | c += a 等价于 c = c + a |
-= | 减法运算符 | c -= a 等价于 c = c - a |
*= | 乘法运算符 | c *= a 等价于 c = c * a |
/= | 除法运算符 | c /= a 等价于 c = c / a |
%= | 取模运算符 | c %= a 等价于 c = c % a |
**= | 幂运算符 | c **= a 等价于 c = c **a |
//= | 整除运算符 | c //= a 等价于 c = c // a |
下面举几个例子:
字符串、列表、元组与数字的乘法
数字与数字可以做算术运算,那么字符串能不能与数字进行运算呢?
在python中,字符串可以和数字做乘法,相当于对字符串重复拼接:
列表与元组同样可以与数字做乘法:
但是字典不可以与数字做乘法,否则会报错:
比较与身份运算符
运算符 | 描述 | 举例 |
---|---|---|
== | 判断是否等于 | a == b |
!= | 判断是否不等于 | a != b |
> | 判断是否大于 | a > b |
< | 判断是否小于 | a < b |
>= | 判断是否大于等于 | a >= b |
<= | 判断是否小于等于 | a <= b |
<> | 判断是否不等于(在python3版本已经废弃) | a <> b |
is | 身份运算符:判断两个对象存储单元是否相同 | a is b |
is not | 身份运算符:判断两个对象存储单元是否不同 | a is not b |
存储单元就是内存块
下面举一些例子,比较运算符很好理解,重点看下身份运算符:
可以看到变量d和d_01的存储单元是一样的,因为我们在定义d = 18的时候,在内存块中占了一个位置,定义d_01的时候会直接取这个位置来存储,所以两者的存储单元相同。f和f_01一样的道理。
在python解释器里直接执行的话结果又有不同,看下面的例子,思考为什么返回的结果不同:
答:因为在python解释器启动时会在内存中先定义好0~255的数字,d和d_01的值18在这个范围内,所以定义的时候,会取已经定义好的相同的存储单元,而f和f_01不在这个范围,每次定义会取不同的存储单元。