在 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
查看标识可以清楚地看到这个 ELSE 与 IF 无关。我认为这是一个错误,但当我执行时,代码没有问题,我不明白发生了什么,ELSE 做了什么?
最佳答案
它在 for
循环完成遍历列表时执行。但是,就您所举的示例而言。如果 break
被调用,则 else
将不会被执行。
关于python - python中else子句的不同用法(不是最常见的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297649/