Python 三元表达式(三元运算符)
✅ 基础语法
结果A if 条件 else 结果B
含义:
- 条件为 True → 返回结果A
- 条件为 False → 返回结果B
一句话:if前面是满足条件的值,else后面是不满足的值 ⚠️ 和普通if语句顺序不一样!
示例1(就是你代码里的)
'未知城市' if i == '' else i
- 如果
i == ''→ 返回'未知城市' - 否则 → 返回
i
示例2
res = 10 if 5>2 else 20
print(res) # 10
🔴 易错重点(考试高频坑)
-
必须写 else,不能省略!
错误:缺少else
1 if x>0
-
不能单独写冒号,和if语句区分
错误
lambda x:if x>0:1 else 0
正确
lambda x:1 if x>0 else 0
-
三元是表达式,有返回值,不是代码块,不能放多行语句。
🧩 放在列表推导式中(你项目的组合用法)
[ '未知城市' if i == '' else i for i in city ]
结构拆分: [ 三元表达式 for 循环部分 ]
先循环拿到i,再执行三元表达式算出每一项的值
📌 嵌套三元(拓展考点,了解即可)
a = 2
res = "大于0" if a>0 else "等于0" if a==0 else "小于0"
选择题(可直接加入题库)
题目:Python三元表达式语法正确的是? A. if x>0: 1 else 0 B. 1 if x>0 else 0 ✅ C. 1 when x>0 else 0 D. 1 if x>0