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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…