【发布时间】:2015-04-09 11:12:32
【问题描述】:
holiday_type
我有三个不同的答案holiday_type = Approved
holiday_type = Confirmed
holiday_type = both
Python 代码:
result = ['confirm','validate'] if holiday_type == 'both' else ['confirm'] if holiday_type == 'Confirmed' else ['validate']
结果:
['validate'] // Approved
['confirm'] // Confirmed
['confirm', 'validate'] // both
我不明白如何编译这个 if else 语句:先哪一秒。你能解释一下如何编译这个条件流吗?
【问题讨论】:
-
为什么?它不是pythonic。
-
关闭原因是这个pythonic............但我只想知道这个执行的流程。因为 for 循环执行从最后开始。
-
提示:
result = ['confirm','validate'] if holiday_type == 'both' else (['confirm'] if holiday_type == 'Confirmed' else ['validate'])- 你可以很容易地看到两个嵌套的类似true_val if condition else false_val形式的语句。 -
我说执行流程从最后开始(从右到左)所以在这种情况下这是如何嵌套的
-
@S͢kyD͢ream:不:这里没有简单的从左到右或从右到左的评估顺序。条件表达式
true_expr if condition else false_expr的求值顺序是condition,然后根据需要求值true_expr或false_expr之一。
标签: python python-2.7 python-3.x if-statement