三元表达式是一种简洁的方式来根据某个条件选择两个值中的一个。它由三个部分组成:条件判断、冒号(:)、然后是两个可能的结果。其基本语法如下:
value_if_true = True_value if condition else False_value
num = 5
output = "Positive" if num > 0 else "Negative"
print(output) # "Positive"
age = 20
cn = "成年", "大于18" if age >= 18 else "未成年"
print(cn) # ('成年', '大于18') 这里一定注意不要使用分号 ; ,否则只返回第一个语句的结果。
age = 20
cn = "成年"; "大于18" if age >= 18 else "未成年"
print(cn) # 成年
# 在函数内部使用三元表达式
def even_num(num):
return True if num % 2 == 0 else False
# 三元表达式用于列表推导式
li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# ret = [i for i in li if i % 2 == 0]
ret = [i if i % 2 == 0 else None for i in li]
print(ret)
# 三元表达式与 lambda 有时候可以将三元表达式与 lambda 进行结合,让代码变得更加简洁。
# 声明一个函数,返回最大值
def max(a,b):
if a > b:
ret = a
else:
ret = b
return ret
r = max(10,15)
print(r)
# 由于上述代码非常简单,可以直接使用 lambda 匿名函数实现。
max = lambda a,b : a if a > b else b
r = max(10,15)
print(r) # 15
# 条件表达式可以嵌套使用,但是建议醉倒嵌套两层
# 编写一个三元表达式,首先判断其值大于20,然后在判断是奇数(案例,无实际意义)
num = 19
ret = '小于20' if num < 20 else ("奇数" if num % 2 ==1 else "偶数")