三元表达式

三元运算符
在python通常称为条件表达式,这些表达式基于真假的条件判断

#三元条件表达式
is_fat=True
state='fat' if is_fat else 'not fat'
print(state)#'fat'


#元组条件表达式
fat=True
fitness=('skinny','fat')[fat]
print('Ali is ',fitness)#'fitness'
# 之所以能够正常工作,是因为在python中,True是1,False是0,这就相当于在元祖中使用0和1来选取数据,就像下面的例子
list1=[1,2,345,6]
print(list1[True])#2
# 但一般不推荐使用,这样的用法很容易把真正的数据和true/false弄混


# 另外一个不使用元组条件表达式的缘故是因为在元祖中会把两个条件都执行,而if-else的表达式不会这样
condition = True
print(2 if condition else 1/0)
#输出: 2
print((1/0, 2)[condition])
#输出ZeroDivisionError异常

# 这是因为在元祖中是先建数据,然后用True(1)/False(0)来索引到数据,而if-else条件表达式遵循普通的if-else逻辑树,因此,如果逻辑中的条件异常,或者是重计算型(计算较久)的情况下,尽量避免使用元祖条件表达式
原文地址:https://www.cnblogs.com/z-x-y/p/9156000.html