Python
值之间的运算
运算符
变量的值运算遵循:先计算再赋值
算术运算符
运算符 | 注释 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
// | 取整 |
** | 幂 |
代码示例:
print(100 + 100) # 200
print(100 - 50) # 50
print(100 * 3) # 300
print(100 / 50) # 2.0
print(100 % 33) # 1
print(100 // 33) # 3
print(100 ** 2) # 10000
赋值运算符
运算符 | 注释 |
---|---|
+= | 加等于 |
-= | 减等于 |
*= | 乘等于 |
/= | 除等于 |
%= | 取余等于 |
//= | 取整等于 |
**= | 幂等于 |
先计算,再给左边的变量赋值(计算后的值),右边的值不变
代码示例:
foo = 100
bar = 2
foo += bar # foo:102
foo -= bar # foo:98
foo *= bar # foo:200
foo /= bar # foo:50.0
foo %= bar # foo:0
foo //= bar # foo:50
foo **= bar # foo:10000
关系运算符
运算符 | 注释 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
结果永远是布尔类型
代码示例:
foo = 100
bar = 2
foo > bar # True
foo < bar # False
foo >= bar # True
foo <= bar # False
foo == bar # False
foo != bar # True
逻辑运算符
运算符 | 注释 |
---|---|
and | 两边的值同时为真则为True,否则为False |
or | 两边的值只要有一个为真则为True,否则为False |
not | 取反 |
结果永远是布尔类型
代码示例:
foo = 2
bar = 0
foo and bar # False
foo or bar # True
not bar # True
位运算符
运算符 | 注释 |
---|---|
& | 只要有一处为假就为0 |
| | 只要有一处为真就为1 |
^ | 相同为0,不同为1 |
~ | 按位取反 |
<< | 左移 |
>> | 右移 |
二进制之间的运算(上下比对)
代码示例:
foo = 0b0110
bar = 0b0010
print(foo & bar) # 2:0b0010
foo = 0b0110
bar = 0b0010
print(foo | bar) # 6:0b0110
foo = 0b0110
bar = 0b0010
print(foo ^ bar) # 4:0b0100
foo = 0b0110
bar = 0b0010
print(~foo, ~bar) # -7:-0b111,-3:-0b11
foo = 0b0110
bar = 0b0010
print(foo << 2, bar << 2) # 24:0b11000,8:0b1000
foo = 0b0110
bar = 0b0010
print(foo >> 2, bar >> 2) # 1:0b1,0:0b0
is
比较内存地址是否一样
代码示例:
foo = 1
bar = 1
print(foo is bar)
id
显示内存地址
代码示例:
foo = 1
print(id(foo))
运算符优先级
级别 | 运算符 |
---|---|
一级 | ** |
二级 | ~、+@、-@ |
三级 | *、/、%、// |
四级 | +、- |
五级 | >>、<< |
六级 | & |
七级 | ^、| |
八级 | <=、<、>、>= |
九级 | <>、==、!= |
十级 | =、%=、/=、//=、-=、+=、*=、**= |
十一级 | is、is not |
十二级 | in、not in |
十三级 | not、and、or |
括号可以改变运算符优先级
代码示例:
foo = (2 + 3) ** 2 # 25
三元运算符
语法糖
代码示例:
if 1 > 2:
foo = 1
else:
foo = 2
# 三元运算符
foo = 1 if 1 > 2 else 2