これを実行した後、何も出力されません。
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
内側のループはx
from から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
。