【发布时间】:2014-01-02 17:48:53
【问题描述】:
我正在尝试将 if-elif-else 语句压缩为一行。我试过了:
a == 1 ? print "one" : a == 2 ? print "two" : print "none"
但是我遇到了语法错误。我也试过:
print "one" if a == 1 else print "two" if a == 2 else print "none"
但我也遇到了语法错误。
我可以做些什么来改善这些答案或创建一个有效的答案?
【问题讨论】:
-
问题:你为什么要这样做?是为了创造单线,还是你觉得你会从中得到更多的清晰?
-
@Makoto 我想这样做是因为我不想写 6 行代码。一长行代码会更好。
-
不要混淆清晰和简洁——通常较短的代码更易读,但如果你诚实地告诉我,你在这里尝试的代码行比较长的代码行更清晰,那么你有一个非常不同的明确的定义。
-
另外值得注意的是,Python 中没有“单行 if-elif-else”语句。还有ternary operator,它使用相同的关键字和相似的语法,但是是一个根本不同的操作,有限制(主要是它只支持表达式)。
-
@Makoto 这与我正在尝试做的事情无关。这个问题需要一个 if-else 语句,但我想要一个 if-else-elif 语句。
标签: python if-statement