6.00x edX には演習があり、その回答の提案は次のとおりです。
def genPrimes():
primes = [] # primes generated so far
last = 1 # last number tried
while True:
last += 1
for p in primes:
if last % p == 0:
break
else:
primes.append(last)
yield last
ID を見ると、この ELSE が IF に関連していないことがはっきりとわかります。バグだと思っていたのですが、実行するとコードは正常で、何が起こっているのか理解できません。その ELSE は何をするのでしょうか?