0. 算术运算符
- 加法:
+
num = 3 + 5 print(num)
- 减法:
-
num = 8 - 2 print(num)
- 乘法:
*
num = 20 * 5 print(num)
- 求幂:
**
num = 2 ** 3 print(num)
- 除法:
/
num = 10 / 4 print(num)
- 整除:
//
num = 5.2 // 2 print(num)
- 取模:
%
num = 10 % 4 print(num)
-
整除
和求模
的应用场景# 九宫格 行索引 列索引 num = 6 row = num // 4 col = num % 4
- 注意
- 不要除以
0
-
()
具有最高
优先级
- 不要除以
1. 赋值运算符
- 简单:
=
,将等号右边
的值赋值给等号左边
的变量# 1. 在内存中开辟一块内存空间 # 2. 将 100 存入该内存空间 # 3. 返回该内存空间唯一标识 num = 100
- 复合:
+=
、-=
、*=
、**=
、/=
、//=
和%=
,先进行算术运算
再进行赋值操作
2. 比较运算符
- 大于:
>
compare = 8 > 6 print(compare)
- 小于:
<
compare = 50 < 100 print(compare)
- 大于或者等于:
>=
compare = 66 >= 66 print(compare)
- 小于或者等于:
<=
compare = 88 <= 88 print(compare)
- 等于:
==
compare = 100 == 100 print(compare)
- 不等于:
!=
compare = 66 != 88 print(compare)
- is:比对唯一标识
a = 10 b = 10 print(id(a), id(b)) print(a is b) c = [1] d = [1] print(id(c), id(d)) print(c is d)
- 注意
- 链状比较运算符:
10 < a <= 66
- 内部性能优化
# 整数对象缓存 1. 将在 "[-5, 256]" 之间的 "小整数对象" 放在 "small_ints" 中 2. 在用这些 "小整数" 时,就从 "small_ints" 中取,不再去 "临时创建" 新的对象
# 直接引用 1. 整数 1) 在一个 代码块 中创建的整数对象 2) 如果在 该代码块中 存在 一个值 与 其相同的 对象 3) 那么就 直接引用,不再创建 新的 整数对象 2. 不可变对象 1) 在 同一个 代码块中的对象 2) 只要是 值相同 的对象,就不会重复创建 3) 而是 直接引用 已经存在 的对象
- 链状比较运算符:
3. 逻辑运算符
- 与:
and
一假则假
- 或:
or
一真则真
- 非:
not
-
真变假
,假变真
-
- 注意
- 当
int
和float
类型进行算术运算时,结果会被提升为float
类型 - 非
bool
类型的值,如果作为真假来判定,一般是非零即真
,非空即真
print(False or 3) print(bool(0)) print(bool("")) print(bool(1))
- 整个逻辑表达式的结果不一定只是
True
和False
print(0 and True) print(1 and 3) print(1 or 3) print(0 or 3) print(0 or False) print(0 or False or 6)
- 当