Skip to content

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

举例子:

py
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

算数运算符也是有优先级的,和在小学的时候学习的一样。

python
i = 3 + 2 * 4;
print(i);  # 结果为:11

乘、除、取模运算的优先级大于加、减运算

3.2 赋值运算符

赋值运算符就是用来给变量赋值的。

赋值运算符

运算符描述举例
=赋值运算符就是把 = 右边的值赋值给左边的变量,之前用过了。

例如:

python
num = 1 + 2
num = a + b

除了赋值运算符,下面还有复合赋值运算符。

复合赋值运算符

复合赋值运算符就是经过计算后,将值赋给前面的变量。

运算符描述举例
+=加法赋值运算符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

举个栗子:

python
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

复合赋值运算符感觉这么写可读性还变差了,有什么好处呢?

  1. 更加简练;
  2. 效率更高。

3.3 关系运算符

关系运算符也就是比较运算符,主要有以下几种:

运算符><>=<===!=
含义大于小于大于等于小于等于等于不等于

举个栗子:

python
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

关系运算符得到的结果都是 bool 类型,在后面的章节可以通过使用关系运算符来进行条件的判断。例如身高大于120cm就要买儿童票等场景。

3.4 逻辑运算符

逻辑运算是用来同时判断多个条件。

主要有以下三种:

运算符andornot
含义与,两边条件同时满足或,两边条件满足一个即可非,不满足

举个栗子:

python
a = True
b = False

print(a and b) 		# False
print(a or b) 		# True
print(not a) 		# 将a取反,结果是False

逻辑运算符两边必须是 bool 类型的变量或结果为 bool 类型的表达式。

逻辑运算符得到的结果还是 bool 类型,可以赋值给 bool 类型的变量。

再举个例子:

python
a = 3
b = 12

print(a > 5 and b > 10)  # False
print(a > 5 or b > 10)  # True
print(not (a > 5))  # True

not(a > 5) 是将 a > 5 的结果取反。 a > 5 结果为 False ,取反则为 True

逻辑运算符的优先级

优先级:not > and > or

举个栗子:

python
result = not 1 < 2 and 3 == 3 or 1 == 3 and 2 <= 3
print(result)				# 打印:False

可以将逻辑运算的结果赋值给一个变量的。当一个逻辑运算语句中同时包含and、or 或 not 的时候,会按照优先级进行运算。

所以上面先运算 not 1 < 2,然后运算 not 1 < 2 and 3 == 3,然后运算 1 == 3 and 2 <= 3,最后运算 or。

逻辑短路

逻辑短路就是在进行逻辑运算的时候,如果已经能够得到最后的值,就不会再继续进行判断了。

只有 and 和 or 运算符存在逻辑短路。

举个栗子:

python
num = 10
if num > 20 and num < 40
    print("num在20~40之间")				# 不会执行

在进行 if 判断的时候,num > 20 已经不成立了,而 and 运算需要两边都满足,所以后面的条件成不成立都不会影响最终逻辑表达式的结果,所以 and 后面就不会再继续判断了,这就是逻辑短路。

同样 or 运算符:

python
num = 10
if num < 20 or num > 40
    print("num在20~100之间")				# 打印:num在20~100之间

在进行 if 判断的时候,num < 20 已经成立了,or 运算只要一边满足即可,所以整个逻辑表达式肯定是成立的,所以 or 后面就不会继续判断了。