python 中的模计算 - int 不可调用?

modulo computation in python - int not callable?

在 Whosebug 上阅读了一些类型为 'int not callable' 的错误后,我发现大多数类型的错误都涉及将 int 视为函数。我在以下程序中遇到此错误,我不确定发生了什么:

求满足方程的n次方

for n in range(100):
    if ((2^n // 3) % 2) == 1:
        print n

错误回溯如下:

File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not callable

^是python是按位异或
** 是您要查找的运算符

for n in range(100):
    if ((2**n // 3) % 2) == 1:
        print n

至于你得到的错误,

int not callable

无法重现,可能不是这些行造成的

您有一个名为 range 的变量,您要为其分配一个整数。所以当你这样做时

for n in range(100):

它试图将整数作为函数调用,而不是使用内置的 range 函数。

最好的解决办法是不要重用内置函数作为变量名。但如果你真的想要,你仍然可以使用 __builtin__ 模块访问原始功能。

import __builtin__
for n in __builtin__.range(100):