# Python教程 - 3 运算符
在编写有逻辑的代码前,先学习一下 Python 中的运算符。
下面介绍 Python 中常见的运算符:算数运算符、赋值运算符、关系运算符。
# 3.1 算数运算符
算数运算符是干嘛的?
就是进行数学运算的,就是小学学的加、减、乘、除等。
Python中常见的算数运算符如下:
运算符 | 描述 | 举例 |
---|---|---|
+ | 加 | 返回两个数相加的结果,例如: 10 + 20 = 30 |
- | 减 | 返回两个数相减的结果,例如 :10 - 20 = -10 |
* | 乘 | 返回两个数相乘的结果,例如: 10 * 20 = 200 |
/ | 除 | 返回两个数相除的结果,例如: 10 / 20 = 0.5 |
// | 整除 | 返回两个数相除,商的整数部分,例如:9 // 2 = 4 |
% | 取余 | 返回除法运算的余数,例如:9 % 7 = 2 |
** | 指数 | 返回指数运算结果,例如:2 ** 3 = 8 |
举例子:
print("10 + 20 =", (10 + 20)) # 10 + 20 = 30
print("10 - 20 =", (10 - 20)) # 10 - 20 = -10
print("10 * 20 =", (10 * 20)) # 10 * 20 = 200
print("10 / 20 =", (10 / 20)) # 10 / 20 = 0.5
print("9 // 2 =", (9 // 2)) # 9 // 2 = 4
print("9 % 7 =", (9 % 7)) # 9 % 7 = 2
print("2的3次方 =", (2 ** 3)) # 2的3次方 = 8
2
3
4
5
6
7
算数运算符也是有优先级的,和在小学的时候学习的一样。
i = 3 + 2 * 4;
print(i); # 结果为:11
2
乘、除、取模运算的优先级大于加、减运算。
# 3.2 赋值运算符
赋值运算符就是用来给变量赋值的。
# 赋值运算符
运算符 | 描述 | 举例 |
---|---|---|
= | 赋值运算符 | 就是把 = 右边的值赋值给左边的变量,之前用过了。 |
例如:
num = 1 + 2
num = a + b
2
除了赋值运算符,下面还有复合赋值运算符。
# 复合赋值运算符
复合赋值运算符就是经过计算后,将值赋给前面的变量。
运算符 | 描述 | 举例 |
---|---|---|
+= | 加法赋值运算符 | 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 |
举个栗子:
a = 5
b = 3
a += b # 等效于 a = a + b
print(a) # 8
a = 5
a -= b # 等效于 a = a - b
print(a) # 2
a = 5
a *= b # 等效于 a = a * b
print(a) # 15
2
3
4
5
6
7
8
9
10
11
12
13
复合赋值运算符感觉这么写可读性还变差了,有什么好处呢?
- 更加简练;
- 效率更高。
# 3.3 关系运算符
关系运算符也就是比较运算符,主要有以下几种:
运算符 | > | < | >= | <= | == | != |
---|---|---|---|---|---|---|
含义 | 大于 | 小于 | 大于等于 | 小于等于 | 等于 | 不等于 |
举个栗子:
a = 10
b = 3
c = a == b # 将比较运算的结果赋值给c
print(c) # False
d = a > b # 将比较运算的结果赋值给c
print(d) # True
print(a != b) # True
print(a < b) # False
print(a >= b) # True
print(a <= b) # False
2
3
4
5
6
7
8
9
10
11
12
关系运算符得到的结果都是 bool
类型,在后面的章节可以通过使用关系运算符来进行条件的判断。例如身高大于120cm就要买儿童票等场景。
# 3.4 逻辑运算符
逻辑运算是用来同时判断多个条件。
主要有以下三种:
运算符 | and | or | not |
---|---|---|---|
含义 | 与,两边条件同时满足 | 或,两边条件满足一个即可 | 非,不满足 |
举个栗子:
a = True
b = False
print(a and b) # False
print(a or b) # True
print(not a) # 将a取反,结果是False
2
3
4
5
6
逻辑运算符两边必须是 bool 类型的变量或结果为 bool 类型的表达式。
逻辑运算符得到的结果还是 bool 类型,可以赋值给 bool 类型的变量。
再举个例子:
a = 3
b = 12
print(a > 5 and b > 10) # False
print(a > 5 or b > 10) # True
print(not (a > 5)) # True
2
3
4
5
6
not(a > 5)
是将 a > 5
的结果取反。 a > 5
结果为 False
,取反则为 True
。
# 逻辑运算符的优先级
优先级:not > and > or
举个栗子:
result = not 1 < 2 and 3 == 3 or 1 == 3 and 2 <= 3
print(result) # 打印:False
2
可以将逻辑运算的结果赋值给一个变量的。当一个逻辑运算语句中同时包含and、or 或 not 的时候,会按照优先级进行运算。
所以上面先运算 not 1 < 2,然后运算 not 1 < 2 and 3 == 3,然后运算 1 == 3 and 2 <= 3,最后运算 or。
# 逻辑短路
逻辑短路就是在进行逻辑运算的时候,如果已经能够得到最后的值,就不会再继续进行判断了。
只有 and 和 or 运算符存在逻辑短路。
举个栗子:
num = 10
if num > 20 and num < 40
print("num在20~40之间") # 不会执行
2
3
在进行 if 判断的时候,num > 20 已经不成立了,而 and 运算需要两边都满足,所以后面的条件成不成立都不会影响最终逻辑表达式的结果,所以 and 后面就不会再继续判断了,这就是逻辑短路。
同样 or 运算符:
num = 10
if num < 20 or num > 40
print("num在20~100之间") # 打印:num在20~100之间
2
3
在进行 if 判断的时候,num < 20 已经成立了,or 运算只要一边满足即可,所以整个逻辑表达式肯定是成立的,所以 or 后面就不会继续判断了。