私はPythonで新しく、 "break"がforループで動作する方法について混乱しました。そこの例では、(2、10)の範囲内の素数を計算Pythonドキュメント(break and continue Statements)である:forループでブレークはどのように機能しますか?
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
、出力は次のようになります。
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
しかし私は "休憩" をアウトデントするときコード:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
出力は次のようになります。
2 is a prime number
4 equals 2 * 2
6 equals 2 * 3
8 equals 2 * 4
「ブレーク」を克服した後、コードで何が起こるか説明してください。
正確には分かりませんが、 'if'節の中になければ、最初の反復で到達します。 – jonrsharpe
ありがとう、なぜ9が表示されないのですか? –
同じ理由から、他の奇数は印刷されません。あなたが驚いていることははっきりしていません。たとえば、 http://pythontutor.com/ – jonrsharpe