我是新来的Python和我试图使用具有这种格式的三元算子的(我是这么认为的)
value_true if <test> else value_false
下面是一个代码片段:
expanded = set()
while not someExpression:
continue if currentState in expanded else expanded.push(currentState)
# some code here
但是Python不喜欢它,并说:
SyntaxError: invalid syntax (pointed to if)
如何解决呢?
在python三元操作使用的表达 ,而不是语句 。 表达的东西,具有价值。
例:
result = foo() if condition else (2 + 4)
# ^^^^^ ^^^^^^^
# expression expression
对于语句(代码块,如continue
, for
等)的使用if
:
if condition:
...do something...
else:
...do something else...
你想做什么:
expanded = set()
while not someExpression:
if currentState not in expanded: # you use set, so this condition is not really need
expanded.add(currentState)
# some code here