算术运算符
用于基本数学运算
运算符 | 描述 |
---|---|
+ | 加 - 两个对象相加 |
- | 减 - 得到负数或是一个数减去另一个数 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 |
/ | 除 - x 除以 y |
% | 取模 - 返回除法的余数 |
** | 幂 - 返回x的y次幂 |
// | 取整除 - 往小的方向取整数 |
print(f"{a} + {b} = {a + b}") # 加法 13
print(f"{a} - {b} = {a - b}") # 减法 7
print(f"{a} * {b} = {a * b}") # 乘法 30
print(f"{a} / {b} = {a / b}") # 除法 3.333...
print(f"{a} % {b} = {a % b}") # 取模 1
print(f"{a} ** {b} = {a ** b}") # 幂运算 1000
print(f"{a} // {b} = {a // b}") # 整除 3
注意: 除法和整除的区别。 咦,多了一道/就行。
比较运算符
用于比较值
运算符 | 描述 |
---|---|
== | 等于 - 比较对象是否相等 |
!= | 不等于 - 比较两个对象是否不相等 |
> | 大于 - 返回x是否大于y |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 |
>= | 大于等于 - 返回x是否大于等于y。 |
<= | 小于等于 - 返回x是否小于等于y。 |
print(f"{a} == {b}: {a == b}") # False
print(f"{a} != {b}: {a != b}") # True
print(f"{a} > {b}: {a > b}") # True
print(f"{a} < {b}: {a < b}") # False
print(f"{a} >= {b}: {a >= b}") # True
print(f"{a} <= {b}: {a <= b}") # False
赋值运算符
用于变量赋值
算符 | 描述 |
---|---|
= | 简单的赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整除赋值运算符 |
:= | 海象运算符,在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增 |
x = 5 # 基本赋值
x += 3 # 等同于 x = x + 3
x -= 3 # 等同于 x = x - 3
x *= 1 # 等同于 x = x * 1
x /= 1 # 等同于 x = x / 1
x %= 2 # 等合于 x = x % 2
y = 10
y **= 2 # y = y ** 2
print(f"y **= 2 → {y}") # 100
# 海象运算符(Python 3.8+)
if (n := len("hello")) > 3:
print(f"字符串长度{n} > 3")
#对比正常写法
n = len("hello")
if n > 3:
print(f"字符串长度{n}>3")
逻辑运算符
用于布尔逻辑
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
print(f"True and False: {True and False}") # False
print(f"True or False: {True or False}") # True
print(f"not True: {not True}") # False
# 短路特性
def test():
print("函数被调用")
return True
print(False and test()) # test()不会被调用
位运算符
用于二进制位操作
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 |
m, n = 5, 3 # 二进制: 101 & 011
print(f"{m} & {n} = {m & n}") # 按位与 1 (001)
print(f"{m} | {n} = {m | n}") # 按位或 7 (111)
print(f"{m} ^ {n} = {m ^ n}") # 按位异或 6 (110)
print(f"~{m} = {~m}") # 按位取反 -6
print(f"{m} << 1 = {m << 1}") # 左移 10 (1010)
print(f"{m} >> 1 = {m >> 1}") # 右移 2 (010)
成员运算符
用于检查序列成员。
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
lst = [1, 2, 3, 4, 5]
print(f"3 in {lst}: {3 in lst}") # True
print(f"6 not in {lst}: {6 not in lst}") # True
身份运算符
用于检查对象身份
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(f"x is y: {x is y}") # True (同一对象)
print(f"x is z: {x is z}") # False (不同对象)
print(f"x is not z: {x is not z}") # True(不同对象)
print(f"x == z: {x == z}") # True (值相同)
运算符优先级
解释了运算的执行顺序
1 | ** | 幂运算 |
2 | ~ + - | 按位取反, 正负号 |
3 | * / % // | 乘除 |
4 | + - | 加减 |
5 | << >> | 位移 |
6 | & | 按位与 |
7 | ^ | | 按位异或/或 |
8 | < <= > >= == != | 比较 |
9 | = += -= *= /= %= **= //= | 赋值 |
10 | is is not | 身份 |
11 | in not in | 成员 |
12 | not and or | 逻辑 |
1. **
result = 5 + 3 * 2 ** 2 # 等同于 5 + (3 * (2 ** 2)) = 17
print(f"\n5 + 3 * 2 ** 2 = {result}")
没有了。今天 就到这里吧。