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