我已经阅读了下面的链接,但它没有解决我的问题。
Does Python have a ternary conditional operator?(问题是将if else语句压缩为一行)
有没有一种更简单的方法来编写if-elif-else语句,使其适合一行?
例如
if expression1:
statement1
elif expression2:
statement2
else:
statement3
[更新]
if i>100:
x=2
elif i<100:
x=1
else:
x=0
我只是觉得如果上面的例子可以用下面的方式来写,它会看起来更简洁。
x=2 if i>100 elif i<100 1 else 0 [WRONG]
只需在else语句中嵌套另一个if子句。但这并不能让它看起来更漂亮。
不,这是不可能的(至少不能用任意的语句),也不可取。将所有内容都放在一行很可能违反PEP-8的规定,即行的长度不得超过80个字符。
这也违背了Python的禅宗:“可读性很重要”。(在Python提示符处键入
import this
以读取整个内容)。可以在Python中使用三元表达式,但只能用于表达式,不能用于语句:
编辑:
修改后的问题表明,除了赋值之外,这三个语句是相同的。在这种情况下,链式三元运算符确实有效,但我仍然认为它的可读性较差:
如果不同情况下只需要不同的表达式,则这可能对您有用:
例如:
相关问题 更多 >
编程相关推荐