【发布时间】:2022-07-22 23:14:03
【问题描述】:
我正在尝试找出以下行不起作用的原因:
i = 0 if i // 3 == 0 else i += 1
尽管 i 是在此行之前定义的,但我收到“未解析的引用 'i'”错误。抱歉,如果这很明显,但我对三元组还很陌生,并且无法找到为什么这不起作用的充分理由(尽管我怀疑这可能与增强分配有关)。
提前致谢。
【问题讨论】:
-
问题是
i += 1是一个语句,而不是一个表达式。一条工作线是:i = 0 if i // 3 == 0 else i+1 -
即此语法的工作方式类似于:
(variable) = (expression1) if (condition) else (expression2)。不像(statement1) if (condition) else (statement2)。 -
@slothrop 感谢您提供的信息。您的代码有效,但 i 不再递增。您是否知道让生产线按原计划工作的方法?
-
如果 i 从 0 开始,那么它确实永远不会增加,因为
i//3 == 0!
标签: python python-3.9