2016-06-15 22 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をマスクしていないことを確認してください。その変数の別の名前を選択します。

関連する問題