三元运算符

三元运算符

三元运算符通常在Python⾥被称为条件表达式

这些表达式基于真(true)/假(not)的条件判 断

在Python 2.4以上才有了三元操作。

下⾯是⼀个伪代码和例⼦:

伪代码:

如果条件为真,返回真 否则返回假

condition_is_true if condition else condition_is_false
例⼦: 

is_fat = True
state = "fat" if is_fat else "not fat"

它允许⽤简单的⼀⾏快速判断,⽽不是使⽤复杂的多⾏ if 语句。

这在⼤多数时候⾮常有 ⽤,⽽且可以使代码简单可维护。

另⼀个⽤法⽐较少见,它使⽤了元组,请继续看:

伪代码:

#(返回假,返回真)[真或假]
(if_test_is_false, if_test_is_true)[test]


例⼦:

fat = True
fitness = ("skinny", "fat")[fat]
print("Ali is ", fitness)
#输出: Ali is fat

这之所以能正常⼯作,是因为在Python中,True等于1,⽽False等于0,

这就相当于在元组 中使⽤0和1来选取数据。

上⾯的例⼦没有被⼴泛使⽤,因为没有Python味⼉ (Pythonic)。

这样的⽤法很容易把真正的数据与 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 逻辑树, 因此,如果逻辑中的条

件异常,或者是重计算型(计 算较久)的情况下,最好尽量避免使用元组条

件表达式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python知识大全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值