3.1 算术运算符
算术运算符用于执行基本的数学运算。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| a = 10 b = 3
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
|
除法注意事项
1 2 3 4 5 6 7 8
| print(10 / 2)
print(10 // 2)
print(-10 // 3)
|
3.2 比较运算符
比较运算符用于比较两个值,返回布尔值(True 或 False)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| x = 10 y = 20
print(x == y)
print(x != y)
print(x > y)
print(x < y)
print(x >= 10)
print(y <= 20)
|
链式比较
Python 支持链式比较,使代码更简洁:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| age = 25
if age >= 18 and age <= 60: print("成年人")
if 18 <= age <= 60: print("成年人")
x = 5 print(1 < x < 10) print(1 < x < 5) print(10 == x > 3)
|
3.3 逻辑运算符
逻辑运算符用于组合多个条件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| a = True b = False
print(a and b) print(a and a)
print(a or b) print(b or b)
print(not a) print(not b)
|
短路求值
1 2 3 4 5 6 7 8 9 10
| print(False and print("不会执行"))
print(True or print("不会执行"))
name = "" result = name or "匿名用户" print(result)
|
3.4 赋值运算符
赋值运算符用于给变量赋值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| x = 10
x = 5
x += 3 print(x)
x -= 2 print(x)
x *= 2 print(x)
x /= 4 print(x)
x //= 2 print(x)
x %= 3 print(x)
x **= 10 print(x)
|
3.5 位运算符
位运算符直接对整数的二进制位进行操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| a = 60 b = 13
print(a & b)
print(a | b)
print(a ^ b)
print(~a)
print(a << 2)
print(a >> 2)
|
3.6 成员运算符与身份运算符
成员运算符
1 2 3 4 5 6 7 8
| fruits = ["apple", "banana", "orange"]
print("apple" in fruits) print("grape" in fruits)
print("grape" not in fruits)
|
身份运算符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| a = [1, 2, 3] b = [1, 2, 3] c = a
print(a is b) print(a is c)
print(a is not b) print(a is not c)
print(a == b) print(a is b)
|
3.7 运算符优先级
运算符优先级从高到低排列:
| 优先级 |
运算符 |
说明 |
| 最高 |
** |
幂运算 |
|
~ + - |
按位取反、正负号 |
|
* / % // |
乘、除、取余、整除 |
|
+ - |
加、减 |
|
<< >> |
位移 |
|
& |
按位与 |
|
^ |
按位异或 |
|
| |
按位或 |
|
== != > < >= <= |
比较 |
|
not |
逻辑非 |
|
and |
逻辑与 |
| 最低 |
or |
逻辑或 |
使用括号明确优先级
1 2 3 4 5 6 7 8
| result = 10 + 5 * 2 ** 3
result = 10 + (5 * (2 ** 3))
score = (math_score * 0.4) + (english_score * 0.3) + (science_score * 0.3)
|
3.8 本章小结
- 算术运算符:
+ - * / // % **
- 比较运算符返回布尔值,支持链式比较
- 逻辑运算符:
and or not,具有短路特性
- 赋值运算符可简化代码:
+= -= 等
is 检查身份(同一对象),== 检查值相等
- 使用括号明确运算优先级
练习题
- 计算圆的面积(半径为 5,π 取 3.14159)
- 判断一个数是否同时能被 3 和 5 整除
- 使用位运算实现:判断一个数是奇数还是偶数
- 以下代码输出什么?
1 2 3
| x = 10 y = 20 print(x == y, x != y, x < y, x >= y)
|