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