TypeError: 'int' object does not support item assignment

后端 未结 1 1800
野趣味
野趣味 2020-12-17 16:11

Why do I get this error?

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

Code:

def algorithmon         


        
相关标签:
1条回答
  • 2020-12-17 16:50

    You're passing an integer to your function as a. You then try to assign to it as: a[k] = ... but that doesn't work since a is a scalar...

    It's the same thing as if you had tried:

    50[42] = 7
    

    That statement doesn't make much sense and python would yell at you the same way (presumably).

    Also, ++k isn't doing what you think it does -- it's parsed as (+(+(k))) -- i.e. the bytcode is just UNARY_POSITIVE twice. What you actually want is something like k += 1

    Finally, be careful with statements like:

    q = q / b
    

    The parenthesis you use with print imply that you want to use this on python3.x at some point. but, x/y behaves differently on python3.x than it does on python2.x. Looking at the algorithm, I'm guessing you want integer division (since you check q != 0 which would be hard to satisfy with floats). If that's the case, you should consider using:

    q = q // b
    

    which performs integer division on both python2.x and python3.x.

    0 讨论(0)
提交回复
热议问题