Python中的三元表达式

Python 自身是不支持传统语言的三元表达式的 <condition> ? <express_1> : <express_2>,有如下几个变通的方法可用。

但是不论如何请以团队平均水平写出容易让别人看懂的代码,哪怕这个代码看起来有点“蠢”也没有关系。
关于如下个人不建议用原因很简单,给多语言使用者带来完全没有必要的认知负担
能装逼的地方很多,不需要在这种毫无意义的地方上装逼。

原始版本

x = 10
if x > 5:
    print("greater")
else:
    print("smaller")

类似英语语法的版本

<true_value> if <conditional_expression> else <false_value>

nice_weather = True
print("Go out for a walk" if nice_weather else "watch a movie at home")
num = 12
print("Even" if num % 2 == 0 else "Odd")
a = 10
b = 5
largest = a if a > b else b
print(largest)

黑魔法元组版本(很装逼很酷,个人不建议用)

(false_value, true_value)[conditional_expression]

a = 10
b = 5
largest = (b, a)[a > b]
print(largest)
nice_weather = True
print(("Watch a movie at home", "Go out for a walk")[nice_weather])

黑魔法list版本(很装逼很酷,个人不建议用)

[false_value, true_value][conditional_expression]

>>> a = 10
>>> b = 5
>>> largest = [b, a][a > b]
>>> print(largest)

黑魔法字典版本(很装逼很酷,个人不建议用)

{True: true_value, False: false_value}[conditional_expression]

posted @ 2021-06-07 10:41  我听不见  阅读(389)  评论(0编辑  收藏  举报