此代码运行良好,并生成所需的素数列表。但打印我们的素数的else
块是不合适的,但无论如何它都有效,有人能解释一下吗?
for num in range(0, 100 + 1):
# prime numbers are greater than 1
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)
答案 0 :(得分:6)
Python有一个整洁的for-else
construct:
for循环也有一个我们大多数人都不熟悉的else子句。当循环正常完成时,else子句执行。这意味着循环没有遇到任何中断。
答案 1 :(得分:1)
事实上,阻止for
也有关键字else
。
答案 2 :(得分:1)
循环中else子句的一个常见用例是实现搜索循环;假设您正在搜索满足特定条件的项目,并且如果找不到可接受的值,则需要执行其他处理或引发错误。