python - 运算符

74 阅读3分钟

在 Python 中,运算符(Operators)用于对变量或值执行各种操作(如算术、比较、逻辑等)。以下是 Python 运算符的详细分类和示例:


一、算术运算符

用于数学计算:

运算符名称示例结果
+加法5 + 38
-减法10 - 28
*乘法4 * 312
/除法(浮点)7 / 2 3.5
//整除(向下取整)7 // 23
%取模(余数)7 % 21
**幂运算2 ** 38

示例

print(5 + 3)    # 8
print(7 // 2)   # 3(整除)
print(2 ** 4)   # 16(2的4次方)

算术运算符优先级(从高到低)

优先级运算符说明示例结果
1**幂运算(指数)2 ** 38
2*///%乘、除、整除、取模10 * 2 / 54.0
3+-加、减5 + 3 - 26

二、比较运算符

返回布尔值(True 或 False):

运算符名称示例结果
==等于5 == 3False
!=不等于5 != 3True
>大于7 > 2True
<小于7 < 2False
>=大于等于5 >= 5True
<=小于等于3 <= 2False

示例

print(10 == 10)  # True
print(3 != "3")  # True(类型不同)

三、逻辑运算符

用于布尔逻辑运算:

运算符名称示例结果
and逻辑与True and FalseFalse
or逻辑或True or FalseTrue
not逻辑非not TrueFalse

示例

age = 20
is_adult = age >= 18
print(is_adult and age < 30)  # True(20 >= 18 且 20 < 30)
print(not is_adult)          # False

四、赋值运算符

简化变量赋值操作:

运算符等价形式示例
=a = 5x = 5
+=a = a + bx += 3 → x = x + 3
-=a = a - bx -= 2 → x = x - 2
*=a = a * bx *= 4 → x = x * 4
/=a = a / bx /= 2 → x = x / 2
//=a = a // bx //= 3 → x = x // 3
%=a = a % bx %= 2 → x = x % 2
**=a = a ** bx **= 2 → x = x ** 2

示例

count = 10
count += 5  # 等价于 count = count + 5
print(count)  # 15

五、位运算符(了解)

直接操作二进制位:

运算符名称示例(a=60, b=13)二进制结果
&按位与a & b0b00001100 (12)
``按位或`a
^按位异或a ^ b0b00110001 (49)
~按位取反~a-61(补码表示)
<<左移a << 2240(60<<2)
>>右移a >> 215(60>>2)

示例

a = 60  # 二进制 00111100
b = 13  # 二进制 00001101
print(a & b)  # 12(二进制 00001100)

六、成员运算符

检查元素是否在序列中:

运算符名称示例结果
in存在"a" in "apple"True
not in不存在"x" not in "apple"True

示例

fruits = ["apple", "banana"]
print("apple" in fruits)     # True
print("orange" not in fruits) # True

七、身份运算符

比较对象的内存地址(是否为同一对象):

运算符名称示例结果
is是同一对象x is yTrue/False
is not不是同一对象x is not yTrue/False

示例

a = [1, 2]
b = a
c = [1, 2]
print(a is b)    # True(指向同一对象)
print(a is c)    # False(内容相同但对象不同)
print(a == c)    # True(值相等)

八、运算符优先级

从高到低:

  1. **(幂运算)
  2. *///%(乘除、整除、取模)
  3. +-(加减)
  4. ><>=<=(比较)
  5. ==!=(相等性)
  6. =+=-=(赋值)
  7. andornot(逻辑)

示例

result = 10 + 5 * 2  # 先乘后加 → 20
print(result)

九、特殊运算符

1. 三元运算符

python
x = 10
y = 20
max_val = x if x > y else y  # 如果 x > y 返回 x,否则返回 y
print(max_val)  # 20

2. 链式比较

age = 25
print(18 <= age < 30)  # True(等价于 age >= 18 and age < 30)

总结

类型常见运算符
算术+-*///%**
比较==!=><>=<=
逻辑andornot
赋值=+=-=*=/=
位运算&, `
成员innot in
身份isis not

关键点

  1. 运算符有优先级,不确定时用括号 () 明确顺序。
  2. 逻辑运算符支持短路计算(如 and 遇到 False 直接返回)。
  3. 身份运算符 is 比较内存地址,== 比较值。