if i+1 < stages[i]: tried[i] = (tried[i] + 1) if tried[i] != None else tried[i] = 0
如果i + 1 <阶段[i]:尝试[i] =(尝试[i] +1),如果尝试[i]!=无 否则尝试过[i] = 0 ^ SyntaxError:无法分配给条件表达式
我遇到了cannot assign to conditional expression
错误。不确定我做错了哪一部分。
答案 0 :(得分:3)
应该是:
if i+1 < stages[i]: tried[i] = (tried[i] + 1) if tried[i] != None else 0
没有最后一个triend[i] = 0
,只有0
(无论如何,triend
可能还是错误的。)
答案 1 :(得分:0)
您正在寻找的整体结构,因为您正在尝试使用多个条件表达式完成赋值,是这样的: variable = expression condition else expression condition ... else expression 。您甚至可以使用括号来提醒自己它将如何解析:variable = (expression condition else expression 条件 ... else 表达式)。整个条件表达式必须以“else”结尾。
例如,我有以下代码:
x = 5
if x == 1:
a = '1'
elif x == 2:
a = '2'
else:
a = '3'
print(a)
使用条件表达式,它变成:
x = 5
a = '1' if x == 1 else '2' if x == 2 else '3'
print(a)
我不确定你的赋值和条件表达式是什么
if i+1 < stages[i]: tried[i] = (tried[i] + 1) if tried[i] != None else tried[i] = 0
展开时看起来像,因为缺少一些信息:
missing_expression = '?'
if i+1 < stages[i]:
tried[i] = (tried[i] + 1)
elif tried[i] != None:
tried[i] = missing_expression
else:
tried[i] = 0
当提供缺少的表达式时,您的条件表达式应如下所示:
tried[i] = (tried[i] + 1) if i+1 < stages[i] else missing_expression if tried[i] != None else 0