为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

aluckdog 2019-11-04 14:54:37
我刚接触Python,我真的很喜欢语法的简洁性。然而,有没有写一个更简单的方法if- then- else语句,因此它适合在同一行?例如:if count == N:    count = 0else:    count = N + 1有没有更简单的写方法?我的意思是,在Objective-C中,我会这样写:count = count == N ? 0 : count + 1;Python有类似的东西吗?更新资料我知道在这种情况下我可以使用count == (count + 1) % N。我在问通用语法。
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

更确切地说,这是三元运算符而不是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 = False

if fruit == 'Apple' : isApple = True


查看完整回答
反对 回复 2019-11-04
?
莫回无

TA贡献1865条经验 获得超7个赞

而且,您仍然可以使用“普通” 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)) 


查看完整回答
反对 回复 2019-11-04
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

通用三元语法:


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]()


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 1052 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信