2017-10-02 14 views
0

でNUM +1は、私は理解していない:場合やwhile文、スクリプトがためだけに「1」を出力します前に、numが定義されている場合PythonのNUM =ループ

num = 0 

for i in range(2, 30): 
    j = 2 
    prime = "is" 
    while j < i: 
     if i % j == 0: 
      prime = "not" 
      j = j + 1 

     else: 
      j = j + 1 

    if prime == "is": 
     num = num + 1 
     print(num) 
    else: prime = "is" 

SyntaxError: multiple statements found while compiling a single statement 

Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> 

そこにいくつの素数があるかを数えるのではなく、1と29の間のすべての素数。

+1

ブロックの外側のインデントを修正してもエラーは表示されません。そのコードのどれが最初の 'for'ブロックの下にあるべきかについても曖昧です。それはすべてのものか、 'while j

+0

あなたの書式設定が正しいことを確認してください。特にPythonではそうです。論理的なエラーか、コードスニペットの構文エラーかどうかは不明です。 – Miket25

+0

これをどのように実行していますか?それはIDLEで動作していますか? –

答えて

0

私はj=2(と残りのコード)はforと同じレベルであってはならないと思います。

+0

ええ、私は質問をしたときにそれを逃しました。forの後の​​コードはインデントされました –

+0

forループの識別子を修正した後に動作しますか? – user259632

0

最後に、else文とprint文を2つの異なる行に配置する必要があります。

0

"forループ"内のコードブロックはインデントによって決まります。 あなたの "forループ"はコードブロックを持たないので効果的に何もしません。