2017-06-15 4 views
3

このコードはかなりうまく動作し、素数の必要なリストを生成します。しかし、私たちの素数を印刷するブロックelseはブロックされていませんが、とにかく動作します。なぜこの `else`ブロックは動作しますが、` if`の場合と同じレベルではありませんか?

for num in range(0, 100 + 1): 
    # prime numbers are greater than 1 
    if num > 1: 
     for i in range(2, num): 
      if (num % i) == 0: 
       break 
     else: 
      print(num) 

参考:実際にはprogramiz.com

+0

これはfor-else節です。 SOまたは一部のチュートリアルサイトで簡単にドキュメントを見つけることができます。 – Lafexlos

答えて

6

Pythonはきちんとfor-else constructがあります

ループの場合

また、私たちのほとんどはに慣れていないelse節を持っています。 else節は、ループが正常に完了したときに実行されます。つまり、ループには何も起こりませんでした。

1

、ブロックforもキーワードelseを持っています。

for-else document

+0

リンクを追加して回答をもっと役に立ちます:) –

1

ループ内のelse節の一般的な使用例は、検索ループを実装することです。特定の条件を満たすアイテムの検索を実行しており、追加の処理を実行するか、許容値が見つからない場合にエラーを発生させる必要があるとします。

を参照https://shahriar.svbtle.com/pythons-else-clause-in-loops

関連する問題