为什么这个'else`块工作但它与`if`情况不在同一级别?

时间:2017-06-15 06:30:39

标签: python algorithm if-statement primes for-else

此代码运行良好,并生成所需的素数列表。但打印我们的素数的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)

参考:programiz.com

3 个答案:

答案 0 :(得分:6)

Python有一个整洁的for-else construct

  

for循环也有一个我们大多数人都不熟悉的else子句。当循环正常完成时,else子句执行。这意味着循环没有遇到任何中断。

答案 1 :(得分:1)

事实上,阻止for也有关键字else

for-else document

答案 2 :(得分:1)

循环中else子句的一个常见用例是实现搜索循环;假设您正在搜索满足特定条件的项目,并且如果找不到可接受的值,则需要执行其他处理或引发错误。

参考https://shahriar.svbtle.com/pythons-else-clause-in-loops