语法错误:“cant assign to operator”Python

2024-06-28 19:34:22 发布

您现在位置:Python中文网/ 问答频道 /正文

a, b, c = 0, 1,0
while c < 1000000:
    print (b)
    a, b = b, a + b, c = c + b

翻译程序向我抛出“无法分配给操作员”错误。NinjaIDE强调变量初始化是问题所在。但是,当我在解释器中运行代码时,“a+b”被突出显示为问题部分。你能帮我找出我的问题吗?


Tags: 代码错误解释器printwhile操作员ninjaide
3条回答

当您编写a, b, c = 0, 1, 0时,您没有创建多个赋值。相反,您隐式地使用元组打包解包。在a, b = b, a + b, c = c + b行中,您正在尝试同样的操作,但是赋值的右侧部分包含另一个无效的赋值(在python中赋值不是表达式)。如果你想把它写在一行,你应该写

a, b, c = b, a + b, a + b + c

但是,由于c的值依赖于{}的值已经改变,所以将其拆分为两行可能更清楚

^{pr2}$

类似于a, b, c = 0, 1,0的工作原理。。。在

这一行试图把a和b分配到等号的右边。这里有三件事,其中一件是变量赋值操作

a, b = b, a + b, c = c + b

也许你是说这个

^{pr2}$

或者,当然,只需在多行上执行

这是一个简单的解决方法: 更改c = c + b在代码中的位置。在

a, b, c = 0, 1,0
while c < 1000000:
    print (b)
    a, b, c = b, a + b, c + b

它在做什么:

^{pr2}$

但你可以分开写。在

希望有帮助

相关问题 更多 >