3

这段代码运行得很好,并生成了所需的素数列表。但是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

4

3 回答 3

6

Python 有一个简洁的for-else结构

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

于 2017-06-15T06:33:00.157 回答
1

其实blockfor也有关键词else

其他文件

于 2017-06-15T06:32:45.217 回答
1

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

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

于 2017-06-15T06:33:02.390 回答