これを実行した後、何も出力されません。
for n in range(2,100):
for x in range(2,n):
if n%x == 0:
break
else:
if n==x:
print n,'is a prime number'
これを実行した後、何も出力されません。
for n in range(2,100):
for x in range(2,n):
if n%x == 0:
break
else:
if n==x:
print n,'is a prime number'
if n==x内側のループはxfrom から2の値に対してのみ実行されるため、真になることはありませんn-1。
内側のループが完了するまで実行されたことを確認する必要がある場合は、それ自体elseの後に使用しforます。これは、実行されていないelse場合に実行されます。break
for n in range(2,100):
for x in range(2,n):
if n%x == 0:
break
else:
print n,'is a prime number'
これを行うためのより Pythonic な方法はall、ジェネレーター式を使用することです。
for n in range(2,100):
if all(n%x != 0 for x in range(2,n)):
print n,'is a prime number'
単純なロジックはこれを指示します-残りが0のものはすべてループから抜け出し、モジュロ自体が になる0ため、含まれてelseいるブロックが実行される場所にブロックに到達することはありませんif。