1. Python比较运算符
1.1 基本比较运算符
# 比较运算符示例
a, b = 10, 5
# 1. 等于运算符 (==)
print(f"{a} == {b}: {a == b}") # 输出: False
# 2. 不等于运算符 (!=)
print(f"{a} != {b}: {a != b}") # 输出: True
# 3. 大于运算符 (>)
print(f"{a} > {b}: {a > b}") # 输出: True
# 4. 小于运算符 (<)
print(f"{a} < {b}: {a < b}") # 输出: False
# 5. 大于等于运算符 (>=)
print(f"{a} >= {b}: {a >= b}") # 输出: True
# 6. 小于等于运算符 (<=)
print(f"{a} <= {b}: {a <= b}") # 输出: False
1.2 特殊比较情况
# 1. 不同类型数据的比较
print(3 == 3.0) # 输出: True(数值相等性)
print(3 is 3.0) # 输出: False(身份比较)
# 2. 字符串比较(按ASCII值)
print('apple' < 'banana') # 输出: True
print('A' < 'a') # 输出: True(ASCII:A=65, a=97)
# 3. 序列类型比较
list1 = [1, 2, 3]
list2 = [1, 2, 4]
print(list1 < list2) # 输出: True(逐元素比较)
# 4. None的比较
x = None
print(x is None) # 输出: True(推荐方式)
print(x == None) # 输出: True(不推荐)
# 5. 链式比较
x = 5
print(1 <= x <= 10) # 输出: True(等价于 1 <= x and x <= 10)
2. Python逻辑运算符
2.1 基本逻辑运算符
# 1. 与运算符 (and)
x, y = True, False
print(f"x and y: {x and y}") # 输出: False
# 2. 或运算符 (or)
print(f"x or y: {x or y}") # 输出: True
# 3. 非运算符 (not)
print(f"not x: {not x}") # 输出: False
2.2 短路求值
# 短路求值示例
# 1. and 短路(第一个为False时不会执行第二个)
def check_second():
print("检查第二个条件")
return True
result = False and check_second() # check_second()不会被调用
print(f"结果: {result}") # 输出: False
# 2. or 短路(第一个为True时不会执行第二个)
result = True or check_second() # check_second()不会被调用
print(f"结果: {result}") # 输出: True
# 3. 实际应用场景
user_input = None
default_value = 10
value = user_input or default_value # 当user_input为None时使用默认值
print(f"最终值: {value}") # 输出: 10
2.3 逻辑运算符的返回值
# 1. and 运算符返回值规则
print(0 and 1) # 输出: 0(返回第一个假值)
print(1 and 2) # 输出: 2(都为真时返回最后一个值)
print([] and 'abc') # 输出: [](返回第一个假值)
# 2. or 运算符返回值规则
print(1 or 0) # 输出: 1(返回第一个真值)
print([] or 'abc') # 输出: 'abc'(返回第一个真值)
print(0 or '') # 输出: ''(都为假时返回最后一个值)
# 3. 实际应用
config = {}
port = config.get('port') or 8080 # 配置不存在时使用默认值
print(f"使用端口: {port}") # 输出: 8080
3. Python三目运算符
3.1 基本语法
# 三目运算符基本语法:value_if_true if condition else value_if_false
# 1. 基本使用
age = 20
status = "成年" if age >= 18 else "未成年"
print(f"状态: {status}") # 输出: 成年
# 2. 嵌套使用(不推荐,影响可读性)
score = 85
grade = "A" if score >= 90 else ("B" if score >= 80 else "C")
print(f"等级: {grade}") # 输出: B
# 3. 与其他运算符组合
x = 5
result = (x * 2) if x > 0 else 0
print(f"结果: {result}") # 输出: 10
3.2 实际应用场景
# 1. 条件赋值
user_role = "admin"
can_edit = True if user_role == "admin" else False
# 2. 列表推导式中使用
numbers = [1, -2, 3, -4, 5]
abs_numbers = [x if x > 0 else -x for x in numbers]
print(f"绝对值列表: {abs_numbers}") # 输出: [1, 2, 3, 4, 5]
# 3. 函数返回值
def get_discount(is_vip):
return 0.8 if is_vip else 1.0
price = 100
final_price = price * get_discount(True)
print(f"最终价格: {final_price}") # 输出: 80.0
4. Python运算符优先级和结合性
4.1 运算符优先级
# 运算符优先级示例(从高到低)
# 1. 算术运算符优先级
result = 2 + 3 * 4 # 乘法优先级高于加法
print(f"结果: {result}") # 输出: 14
# 2. 比较运算符和逻辑运算符
x = 5
y = 10
z = 15
result = x < y and y < z # 比较运算符优先级高于逻辑运算符
print(f"结果: {result}") # 输出: True
# 3. 复杂表达式
result = (2 + 3) * 4 > 15 and 20 % 3 == 2
print(f"结果: {result}") # 输出: True
4.2 运算符结合性
# 1. 左结合性示例
a = b = c = 5 # 赋值运算符是右结合的
print(f"a: {a}, b: {b}, c: {c}") # 输出: a: 5, b: 5, c: 5
# 2. 幂运算符(右结合)
result = 2 ** 3 ** 2 # 等价于 2 ** (3 ** 2)
print(f"结果: {result}") # 输出: 512
# 3. 混合运算符
result = 20 - 5 - 3 # 左结合:(20 - 5) - 3
print(f"结果: {result}") # 输出: 12
总结
-
比较运算符
- 掌握基本比较运算符(==, !=, >, <, >=, <=)的使用
- 理解不同类型数据比较的规则
- 注意使用 is 和 == 的区别
- 熟练运用链式比较提高代码简洁性
-
逻辑运算符
- 理解 and、or、not 的基本用法
- 掌握短路求值机制及其应用
- 熟悉逻辑运算符的返回值规则
- 善用逻辑运算符处理默认值和条件判断
-
三目运算符
- 掌握三目运算符的基本语法和使用场景
- 避免过度嵌套影响代码可读性
- 在适当场景下使用三目运算符提高代码简洁性
-
运算符优先级和结合性
- 熟记常用运算符的优先级顺序
- 理解运算符的结合性(左结合vs右结合)
- 合理使用括号提高代码可读性和准确性
- 在复杂表达式中注意运算顺序