【发布时间】:2017-12-09 18:56:00
【问题描述】:
我正在尝试编写一个简单的三元运算符,它在 ruby 中看起来像这样:
0 > 1 ? alice+=1 : bob+=1
我是这样用python写的:
alice += 1 if 0 > 1 else bob += 1
此三元运算符在 bob+=1 处引发无效语法。为什么会发生这种情况,我怎样才能让第二个操作员按照与第一个操作员相同的方式执行?
【问题讨论】:
-
三元运算符只能写表达式,不能写语句。
-
因为
bob += 1是一个语句,而不是一个表达式。 -
如何渲染
bob+=1一个表达式?为什么alice+=1是一个表达式,而bob+=1是一个语句? -
这两个都是扩充的赋值语句,而不是表达式。不清楚你想要什么。
-
赋值不能在 Python 中永远不能是表达式。您可以将逻辑包装在一个函数中并调用它(函数调用是一个表达式)