将简单的if-then-else语句写在一行中
我怎么在Python里写一个if
-then
-else
语句,让它只占一行呢?
比如,我想要一个一行的版本:
if count == N:
count = 0
else:
count = N + 1
在Objective-C里,我会这样写:
count = count == N ? 0 : count + 1;
5 个回答
170
count = 0 if count == N else N+1
- 三元运算符。虽然我觉得你的解决方案比这个更容易理解。
298
此外,你仍然可以使用“普通的” if
语法,并把它合并成一行,用冒号来表示。
if i > 3: print("We are done.")
或者
field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural))
2532
这实际上是一个叫做三元运算符的表达式,而不是简单的if-then语句。下面是Python的语法示例:
value_when_true if condition else value_when_false
更好的例子:(感谢Burns先生)
'Yes' if fruit == 'Apple' else 'No'
现在加上赋值,并与if语法对比
fruit = 'Apple'
isApple = True if fruit == 'Apple' else False
与
fruit = 'Apple'
isApple = False
if fruit == 'Apple' : isApple = True