为啥这个 `else` 块可以工作,但它与 `if` 情况不在同一级别? [复制]
Posted
技术标签:
【中文标题】为啥这个 `else` 块可以工作,但它与 `if` 情况不在同一级别? [复制]【英文标题】: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 或一些教程网站中轻松找到有关它的文档。 【参考方案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
【讨论】:
添加链接,让您的回答更有帮助:)以上是关于为啥这个 `else` 块可以工作,但它与 `if` 情况不在同一级别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
verilog中if else中能套if else吗,有啥错误啊,为啥??? case中能套if else吗 case中能套case吗