说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 中的条件表达式是一种简洁的语法结构,用于在单行代码中实现条件判断。它也被称为 "三元运算符" 或 "三元表达式",因为它基于三个操作数来做出决策。
以下是一些示例:
# 使用条件表达式选择最大值
x = 10
y = 20
max_value = x if x > y else y
print(max_value) # 输出 20
# 使用条件表达式检查奇偶数
num = 15
parity = "偶数" if num % 2 == 0 else "奇数"
print(parity) # 输出 "奇数"
# 使用条件表达式构建一个简单的函数
def greet(name):
message = f"Hello, {name}!" if name else "Hello, Guest!"
return message
print(greet("Alice")) # 输出 "Hello, Alice!"
print(greet("")) # 输出 "Hello, Guest!"
条件表达式通常用于简单的条件判断,当你需要在一行代码中选择不同的值或执行不同的操作时,它们非常有用。然而,对于复杂的条件逻辑,可能更适合使用传统的 if 语句来提高代码的可读性。
条件表达式可以用在Python的列表推导式中,根据某个条件过滤元素,非常方便和实用。例如,给定一个数字列表,提取出其中大于5的数字:
nums = [1, 5, 8, 3, 12, 6]
greater_than_5 = [num for num in nums if num > 5]
print(greater_than_5)
# [8, 12, 6]
这里的 if num > 5 就是一个条件表达式,num 是一个列表nums中的元素。
再举一个字符串列表的例子:
words = ['hello','world','python']
long_words = [word for word in words if len(word) > 5]
print(long_words)
# ['python']
如果想要求长度大于5的单词的大写形式:
long_words = [word.upper() for word in words if len(word) > 5]
# ['PYTHON']
总结一下,条件表达式允许我们基于某些条件筛选列表元素,非常适合在列表推导式中使用。条件表达式放在 if 关键字之后,通过返回 True 或 False 来决定元素是否保留。
以下是更加复杂的:
grades = [85, 92, 78, 90, 88]
letter_grades = [ 'A' if score >= 90 else 'B' if score >= 80 else 'C' if score >= 70 else 'D' for score in grades]
print(letter_grades) # 输出 ['B', 'A', 'C', 'A', 'B']
条件表达式(有时称为“三元运算符”)在所有 Python 运算中具有最低的优先级。
条件表达式的一般形式如下:
result_if_true if condition else result_if_false
其中:
根据 condition 的值,表达式将返回 result_if_true 或 result_if_false 中的一个值。这个语法结构非常适用于在单行代码中根据条件选择不同的值或执行不同的操作。
表达式 x if C else y 首先是对条件 C 而非 x 求值。 如果 C 为真,x 将被求值并返回其值;否则将对 y 求值并返回其值。
请参阅 PEP 308 了解有关条件表达式的详情。
更新时间:2023-09-17 22:34:15 标签:python 条件表达式 三元运算符