运算符详解
算术运算符
算术运算符用于执行基本的数学运算:
a = 17
b = 5
print(a + b) # 加法: 22
print(a - b) # 减法: 12
print(a * b) # 乘法: 85
print(a / b) # 除法: 3.4(总是返回浮点数)
print(a // b) # 整除: 3(向下取整)
print(a % b) # 取余: 2(模运算)
print(a ** b) # 幂运算: 1419857
注意事项:/ 运算符总是返回浮点数,即使能整除。如果需要整数结果,使用 //。
print(10 / 2) # 输出: 5.0(浮点数)
print(10 // 2) # 输出: 5(整数)
比较运算符
比较运算符用于比较两个值,返回布尔值(True 或 False):
x = 10
y = 20
print(x == y) # 等于: False
print(x != y) # 不等于: True
print(x > y) # 大于: False
print(x < y) # 小于: True
print(x >= y) # 大于等于: False
print(x <= y) # 小于等于: True
链式比较是Python的特色语法:
age = 25
print(18 <= age <= 65) # 等价于 18 <= age and age <= 65
逻辑运算符
逻辑运算符用于组合布尔表达式:
a = True
b = False
print(a and b) # 与: False(两个都为True才返回True)
print(a or b) # 或: True(有一个为True就返回True)
print(not a) # 非: False(取反)
短路求值:Python在计算逻辑表达式时,如果左边的条件已经能确定结果,右边的表达式不会被执行。
# 如果x为0,后面的除法不会执行(避免除零错误)
x = 0
result = x != 0 and 10 / x > 2
print(result) # 输出: False
实际应用示例:
# 检查年龄和身份
age = 25
has_id = True
# 必须年满18岁且有身份证
can_enter = age >= 18 and has_id
print(can_enter) # 输出: True
# 检查多种支付方式
has_cash = False
has_card = True
has_phone = True
# 有任意一种支付方式即可
can_pay = has_cash or has_card or has_phone
print(can_pay) # 输出: True
赋值运算符
赋值运算符用于给变量赋值,Python支持组合赋值:
x = 10
x += 5 # 等价于 x = x + 5,x = 15
x -= 3 # 等价于 x = x - 3,x = 12
x *= 2 # 等价于 x = x * 2,x = 24
x /= 4 # 等价于 x = x / 4,x = 6.0
x //= 2 # 等价于 x = x // 2,x = 3.0
x **= 3 # 等价于 x = x ** 3,x = 27.0
x %= 5 # 等价于 x = x % 5,x = 2.0
身份运算符
身份运算符用于比较两个对象的内存地址(是否是同一个对象):
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # 值相等: True
print(a is b) # 同一对象: False
print(a is c) # 同一对象: True
什么时候用 is:推荐用于比较 None、True、False。
x = None
print(x is None) # 推荐
print(x == None) # 不推荐
成员运算符
成员运算符用于检查值是否在序列中:
fruits = ["苹果", "香蕉", "橘子"]
print("苹果" in fruits) # True
print("西瓜" not in fruits) # True
# 字符串中也可以使用
print("Hello" in "Hello World") # True
运算符优先级
运算符的执行顺序从高到低:
** 幂运算
+x, -x, ~x 一元运算符
*, /, //, % 乘除取余
+, - 加减
<<, >> 位移
& 按位与
^ | 按位异或、按位或
==, !=, >, <, >=, <= 比较
not 逻辑非
and 逻辑与
or 逻辑或
建议:不确定优先级时,使用括号明确运算顺序,提高代码可读性。
总结
运算符是操作数据的基础工具。掌握算术、比较、逻辑这三类运算符后,你就可以编写表达式和条件判断了。下一节我们将深入学习Python的字符串操作。