Python 类型错误:';int';对象不支持项分配

Python 类型错误:';int';对象不支持项分配,python,typeerror,Python,Typeerror,为什么会出现这个错误 a[k] = q % b TypeError: 'int' object does not support item assignment 代码: 将整数作为a传递给函数。然后尝试将其分配为:a[k]=…,但这不起作用,因为a是标量 这和你试过的一样: 50[42] = 7 这句话没有多大意义,python也会以同样的方式对您大喊大叫(大概是这样) 而且,++k并没有做你认为它做的事情——它被解析为(++(k))——也就是说,bytcode只是一元正的两次。您

为什么会出现这个错误

    a[k] = q % b
 TypeError: 'int' object does not support item assignment
代码:


将整数作为
a
传递给函数。然后尝试将其分配为:
a[k]=…
,但这不起作用,因为
a
是标量

这和你试过的一样:

50[42] = 7
这句话没有多大意义,python也会以同样的方式对您大喊大叫(大概是这样)

而且,
++k
并没有做你认为它做的事情——它被解析为
(++(k))
——也就是说,bytcode只是
一元正的
两次。您实际需要的是类似于
k+=1

最后,注意以下语句:

q = q / b
print中使用的括号表示您希望在某个时候在python3.x上使用它。但是,
x/y
在python3.x上的行为与在python2.x上的不同。看看这个算法,我猜您想要整数除法(因为您选中了
q!=0
,这很难用浮点数来满足)。如果是这样的话,你应该考虑使用:

q = q // b

它在python2.x和python3.x上都执行整数除法。

值得明确指出的是,++和-,在Python中不存在。@blackplate-,起初我认为
++k
将是一个
语法错误,但它不是。(我必须查看字节码才能知道它在做什么…
k++
将是一个
SyntaxError
。@mgilson,用一元
++
而不是
++
:)@wRAR的语言来解析
++k
或多或少是一种明显的方式——当然——我只是从来没有任何必要使用一元
++
,所以它对我来说不是很明显!在python中,一元+可以用于什么@JBernardo——令人惊讶的是,
++k
是有效的python语法——它是“对k不做任何事情”的缩写,并为大多数对象返回它
k++
在右边没有任何其他内容的情况下,肯定会导致崩溃和烧毁:)。
q = q // b