把一个简单的if-then语句放在一行上
可能重复:
Python三元运算符
我刚刚进入Python,我真的很喜欢语法的简洁。 然而,是否有一个更简单的方法来编写if-then语句,使其适合于一行?
例如:
if count == N: count = 0 else: count = N + 1 有没有更简单的方式来写这个? 我的意思是,在Objective-C中,我会这样写:
 count = count == N ? 0 : count + 1; 
有没有类似的Python?
更新
 我知道在这种情况下,我可以使用count == (count + 1) % N 。 
我在问一般的语法。
这更具体地说,是一个三元运算符expression式,而不是if-then,下面是python语法
 value_when_true if condition else value_when_false 
更好的例子:(谢谢伯恩斯先生 )
 'Yes' if fruit == 'Apple' else 'No' 
现在与赋值和对比,如果语法
 fruit = 'Apple' isApple = True if fruit == 'Apple' else False 
VS
 fruit = 'Apple' isApple = False if fruit == 'Apple' : isApple = True 
 count = 0 if count == N else N+1 
– 三元操作符 虽然我会说你的解决scheme比这更可读。
此外,你仍然可以使用“普通”的语法,并将其与冒号混合成一行。
 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)) 
一般三元语法:
 value_true if <test> else value_false 
另一种方式可以是:
 [value_false, value_true][<test>] 
例如:
 count = [0,N+1][count==N] 
在select一个分支之前,这将评估两个分支 只评估所选分支:
 [lambda: value_false, lambda: value_true][<test>]() 
例如:
 count = [lambda:0, lambda:N+1][count==N]() 
 <execute-test-successful-condition> if <test> else <execute-test-fail-condition> 
随着你的代码片段,它将成为,
 count = 0 if count == N else N + 1