运算符的类别
- 算数运算符
- 赋值运算符
- 复合赋值运算符
- ⽐较运算符
- 逻辑运算符
1、算术运算符
符号 | 描述 | 实例 |
+ | 加 | print(1+1) 输出结果为2 |
- | 减 | print(1-1) 输出结果为0 |
* | 乘 | print(2*2) 输出结果为4 |
/ | 除 | print(4/2) 输出结果为2 |
// | 整除,向下取整 | print(9//4) 输出结果为2 |
% | 取余 | print(9//4) 输出结果为1 |
** | 乘方 | print(2**4) 输出结果为16 |
() | 优先级 | print((1+1)*3) 输出结果为6 |
2、赋值运算符
运算符 | 描述 | 实例 |
= | 赋值 | 将=右侧的结果赋值给=左侧的变量名 |
2.1 单变量赋值
num = 1
print(num+1)
# 运行结果:
2
2.2 多变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
# 运行结果:
10
0.5
hello world
2.3 多变量相同赋值
a = b = 10
print(a)
print(b)
# 运行结果:
10
10
3、复合赋值运算符
运算符 | 描述 | 实例 |
+= | 加法赋值运算符 | a+=1等价于a=a+1 |
-= | 减法赋值运算符 | a-=1等价于a=a-1 |
*= | 乘法赋值运算符 | a*=1等价于a=ax1 |
/= | 除法赋值运算符 | a/=1等价于a=a/1 |
//= | 整除赋值运算符 | a//=1等价于a=a//1 |
%= | 取余赋值运算符 | a%=1等价于a=a%1 |
**= | 次方赋值运算符 | a**=1等价于a=axx1 |
实例
a = 100
a += 1 # a = a + 1的缩写,即a = 100 + 1,相当于给a在原有基础上重新赋值
print(a)
# 运行结果:
101
b = 2
b *= 3 # b = b * 3,即b = 2 * 3
print(b)
# 运行结果:
6
c = 10
c += 1 + 2 # 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
print(c)
# 运行结果:
13
4、比较运算符
运算符 | 描述 | 实例 |
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a != b) 为 False |
> | 运算符左侧操作数结果是否⼤于右侧操作数结果,如果⼤于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
>= | 运算符左侧操作数结果是否⼤于等于右侧操作数结果,如果⼤于等于,则条件为真,否则为假 | a=3,b=3,则(a >= b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于等于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
实例
a = 7
b = 5
print(a == b) # False
print(a != b) # True
print(a < b) # False
print(a > b) # True
print(a <= b) # False
print(a >= b) # True
5、逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
and | a and b | 条件a和条件b同时为真,结果才为真,否则结果都是假 | True and False, 返回False。 |
or | a or b | 条件a和条件b同时为假,结果才为假,否则结果都是真 | False or True, 返回True。 |
not | not b | 作用是取反或者否定 | not True 返回 False; not False返回 True |
实例
a = 1
b = 2
c = 3
print((a < b) and (b < c)) # True
print((a > b) and (b < c)) # False
print((a > b) or (b < c)) # True
print(not (a > b)) # True
逻辑运算符小结:
and、or一般是用于对多个条件的综合判断,将True理解为1,False理解为0,可以按下面的方式来理解其中的逻辑:
- and的逻辑是找0,只要有一个0就是0,所以会一直找到最后一个非0数据;
- and理解为乘法*: 0 * 1 = 0, 1 * 0 = 0, 0 * 0 = 0, 1 * 1 = 1;
- or的逻辑是找-非0,只要有一个非0就不是0,所以找到第一个非0数据就会停下来;
- or理解为加法+: 0 + 1 = 1, 1 + 0 = 1,0 + 0 = 0 ,1 + 1 = 2 。(1和2都是非0数字,即是True)
6、运算符优先级
- 小括号()优先级最高
- 运算符优先级按类别排序:算术 > 位 > 身份 > 成员 > 比较 > 逻辑 > 赋值 (位非运算符是个另外,它高于乘除)
- 身份、成员、比较、赋值运算符,同类中优先级相同,有多个同类运算符的按从左至右
- 算术运算符中: 乘方最高,乘、除、整除、取余次之,加减最低
- 位运算符中:位非 > 左右移 > 位与 > 位异或 > 位或
- 逻辑运算符中:非最高,与次之,或最低(非:not,与:and,或:or)