将简单的if-then-else语句写在一行中

1355 投票
5 回答
2474956 浏览
提问于 2025-04-15 22:32

我怎么在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

撰写回答