【问题标题】:Why does this `else` block work yet it is not on the same level as the `if` case? [duplicate]为什么这个 `else` 块可以工作,但它与 `if` 情况不在同一级别? [复制]
【发布时间】:2017-11-17 12:22:11
【问题描述】:

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

【问题讨论】:

  • 是for-else子句。您可以在 SO 或一些教程网站中轻松找到有关它的文档。

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


【解决方案1】:

Python 有一个简洁的for-else construct:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      其实区块for也有关键字else

      for-else document

      【讨论】:

      • 添加链接,让您的回答更有帮助:)
      猜你喜欢
      • 2021-03-26
      • 2018-09-19
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2019-12-28
      • 2020-03-12
      • 1970-01-01
      • 2014-03-01
      相关资源
      最近更新 更多