将简单的if-then-else语句放在一行上

我刚接触Python,我真的很喜欢语法的简洁性。然而,有没有写一个更简单的方法if- then- else语句,因此它适合在同一行?


例如:


if count == N:

    count = 0

else:

    count = N + 1

有没有更简单的写方法?我的意思是,在Objective-C中,我会这样写:


count = count == N ? 0 : count + 1;

Python有类似的东西吗?


更新资料


我知道在这种情况下我可以使用count == (count + 1) % N。


我在问通用语法。


aluckdog
浏览 1053回答 3
3回答

冉冉说

更确切地说,这是三元运算符而不是if-then,这是python语法value_when_true if condition else value_when_false更好的例子:(感谢伯恩斯先生)'Yes' if fruit == 'Apple' else 'No'现在具有赋值并与if语法进行对比fruit = 'Apple'isApple = True if fruit == 'Apple' else False与fruit = 'Apple'isApple = Falseif fruit == 'Apple' : isApple = True

莫回无

而且,您仍然可以使用“普通” if语法并将其与冒号合并为一行。if i > 3: print("We are done.")要么field_plural = Noneif 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]这会在选择一个分支之前先评估两个分支。仅评估所选分支:[lambda: value_false, lambda: value_true][<test>]()例如:count = [lambda:0, lambda:N+1][count==N]()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python