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语句会更适宜一些, 以此来提升代码的可读性。

列表推导式

条件表达式, 能够被运用在列表推导式里头, 借助某个既定条件来对元素予以过滤, 着实极为便利且实用。举例而言, 给出一个数字所构成的列表, 从中提取出那些大于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']

语法

一种条件表达式, 有时其被称作"三元运算符"的, 那它在所有运算里有着最低的优先级。

条件表达式的一般形式如下:

复制代码
result_if_true if condition else result_if_false

其中:

依据的值, 表达式会返回当中的一个值, 此语法结构极为适用于在仅有一行的代码里依据条件挑选不同的值或者去执行不同的操作。

首先, 表达式x if C else y, 是对条件C求值, 而非对x求值。若C为真, 那么对x求值, 然后返回x所得的值, 若不是, 那么对y求值, 接着返回y所得的值。

请参阅 PEP 308 了解有关条件表达式的详情。

参考

< 表达式列表 的表达式和操作运算 匿名函数 >

相关推荐
kyrie_sakura10 分钟前
大模型学习7 -- 深度学习2 -- 张量
python·深度学习
智鸟科技GemeOpen开发者智能设备1 小时前
智能插座二次开发如何接入Home Assistant,从零开始完整工程实现(Python+React)
开发语言·python·物联网·react.js·智能家居
hqyjzsb1 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Andreapiki1 小时前
风险审计校招技术栈拆解:SQL、Python、Power BI在2026届JD中的真实权重
数据库·python·sql
2601_966949651 小时前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
玖石书2 小时前
python-uv-windows环境安装方案
windows·python·uv
happylifetree2 小时前
Python06-08:Python开发工具PyCharm安装
python·pycharm
liuchangng2 小时前
类Jev项目Kev从入门到实战(1):Kev 是什么——不开权重也能自训的决策模型
人工智能·python·jev·kev·决策模型
leihefeng2 小时前
PX06-对比两个 Excel 文件的差异:从逐单元格到生产级实现
python·excel
Ticnix3 小时前
MCP 上个月把自己推翻重写了:Session 没了、Sampling 废了——你学的教程还停在 2025
python·agent·全栈