Python三元执行顺序

时间:2018-04-11 20:22:49

标签: python

在python中,如果我使用三元运算符:

x = a if <condition> else b

即使a为假,condition也会执行吗?或者condition首先进行评估,然后根据结果转到ab

2 个答案:

答案 0 :(得分:5)

首先评估条件,如果条件为假,则不评估adocumentation

答案 1 :(得分:3)

根据条件是否符合要求进行评估。例如:

condition = True
print(2 if condition else 1/0)
#Output is 2

print((1/0, 2)[condition])
#ZeroDivisionError is raised

无论1/0是否引发错误,都不会评估,因为评估条件为True。

Sames以另一种方式发生:

condition = False
print(1/0 if condition else 2)
#Output is 2