在 Python 中,三目运算符(也称为条件表达式)是一种简洁的条件判断语法,用于在一行代码中根据条件选择不同的值。
value_if_true if condition else value_if_false
它的作用是:如果 condition
为 True
,则返回 value_if_true
;否则返回 value_if_false
。
result = value_if_true if condition else value_if_false
a = 10
b = 20
max_value = a if a > b else b
print(max_value) # 输出: 20
三目运算符的核心是一个条件判断。如果条件为 True
,则返回 value_if_true
;否则返回 value_if_false
。
age = 18
status = "Adult" if age >= 18 else "Minor"
print(status) # 输出: Adult
三目运算符可以嵌套使用,但为了代码的可读性,不建议过度嵌套。
a = 10
b = 20
c = 30
max_value = a if a > b and a > c else (b if b > c else c)
print(max_value) # 输出: 30
if-else
语句的对比三目运算符可以简化 if-else
语句的代码,但只适用于简单的条件判断。
# 使用 if-else 语句
a = 10
b = 20
if a > b:
max_value = a
else:
max_value = b
# 使用三目运算符
max_value = a if a > b else b
三目运算符常用于根据条件为变量赋值。
score = 85
result = "Pass" if score >= 60 else "Fail"
print(result) # 输出: Pass
在函数中,可以使用三目运算符根据条件返回不同的值。
def get_max(a, b):
return a if a > b else b
print(get_max(10, 20)) # 输出: 20
三目运算符可以与列表推导式结合使用,生成条件化的列表。
numbers = [1, 2, 3, 4, 5]
squares = [x ** 2 if x % 2 == 0 else x for x in numbers]
print(squares) # 输出: [1, 4, 3, 16, 5]
三目运算符可以用于设置默认值。
name = ""
default_name = "Guest"
display_name = name if name else default_name
print(display_name) # 输出: Guest
虽然三目运算符可以简化代码,但过度使用或嵌套会降低代码的可读性。建议在简单的条件判断中使用三目运算符,复杂的逻辑仍然使用 if-else
语句。
# 不推荐
result = "A" if a > b else ("B" if b > c else "C")
# 推荐
if a > b:
result = "A"
elif b > c:
result = "B"
else:
result = "C"
三目运算符中的表达式不应包含副作用(如修改全局变量、调用函数等),以免影响代码的可维护性。
# 不推荐
result = (print("True"), "A") if condition else (print("False"), "B")
# 推荐
if condition:
print("True")
result = "A"
else:
print("False")
result = "B"
Python 的三目运算符是一种简洁的条件判断语法,适用于简单的条件选择场景。通过掌握三目运算符的使用方法,可以在变量赋值、返回值选择、列表推导式等场景中更加高效地编写代码。