我正在尝试编写一个简单的三元运算符,它在ruby中看起来像这样:
0 > 1 ? alice+=1 : bob+=1
我用python编写它:
alice += 1 if 0 > 1 else bob += 1
此三元运算符在bob+=1
处抛出无效语法。为什么会发生这种情况,如何让第二个操作符与第一个操作符一样执行?
答案 0 :(得分:3)
三元语法是表达式;您已尝试将其用作单行if-then-else
。您可以选择来自等式的RHS的增量值,例如:
alice += 1 if bob > 1 else 0
...但你不能像这样更改作业的目标。如果确实需要这样做,您可以为LHS alice, bob
分配一个自定义元组,但这似乎有点过分了。只需使用自然的if
语句
if 0 > 1:
alice += 1
else:
bob += 1
最终执行代码将是相同的,并且源代码保持更易读。