2016-06-15 48 views
0

我以前从来没有用Python编写过程,并且我已经采用了互联网的一些示例,并对它们进行了编辑以创建一个可以找到素数的代码。但是,即使在咨询了解了很多Python的人之后,我也无法弄清楚这个代码的问题是什么。我总是只得到错误:TypeError:'str'对象不可调用?

TypeError: 'str' object is not callable 

这条线:

 if (j > i/j) : print(i, " is prime") 

下面是该程序的完整代码。

i = 2 
while(i < 100): 
    j = 2 
    while(j <= (i/j)): 
     if not(i%j): break 
     j = j + 1 
     if (j > i/j) : print(i, " is prime") 
    i = i + 1 
+4

您似乎已将一个字符串分配给名称“print”。 –

+0

dupe [here](http://stackoverflow.com/questions/30591182/how-to-fix-redefinition-of-str?lq=1)指的是“str”内建的阴影,这与之相同'print'。参考Martijn的答案来解决你的*精确*问题,并得到一些见解。 –

回答

2

其他地方在你的代码或会话,你势必字符串对象的名称print

print = 'foo' 

现在print(...)试图调用一个字符串,而不是内置的功能。

在互动环节中,删除名称print

del print 

在脚本中,请确保你没有模板的名称print;为该变量选择一个不同的名称。