2016-06-15 44 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;爲該變量選擇一個不同的名稱。