gpt4 book ai didi

Python:for if-else 之间的循环,这是如何/为什么工作的?

转载 作者:太空狗 更新时间:2023-10-30 00:41:47 24 4
gpt4 key购买 nike

我目前正在学习 Lynda Python 教程,在生成器部分我看到了以下代码:

def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
else:
return True

一开始我没听懂,但在查看代码时我注意到 else 关键字和 if 之间有一个完整的 for 循环> 在相同的缩进级别。令我惊讶的是,代码不仅运行了,而且还产生了正确的行为。

如果我用简单的 print("Hello, World") 语句替换 for 循环,只有这样我才会得到预期的解释器错误。

这种语法背后的原因是什么?为什么它适用于循环语句而不适用于 print() 等其他语句?

作为引用,我本以为代码会像下面这样写:

def isprime(n):
if n == 1:
return False
for x in range(2, n):
if n % x == 0:
return False
return True

最佳答案

for: block 之后的 else: block 仅在循环正常完成时运行。如果您break 退出循环,它就不会运行。在这种情况下,这没有什么区别,因为您永远不会跳出循环;您可以在它结束之前返回,或者让它正常完成。

关于Python:for if-else 之间的循环,这是如何/为什么工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7019794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com