Python 在continue语句中,其他部分如何工作?

Python 在continue语句中,其他部分如何工作?,python,for-loop,for-else,Python,For Loop,For Else,我不确定continue语句在带有else子句的for循环中时是如何解释的 如果条件为true,则中断将从for循环退出,否则部分将不执行。如果条件为False,则执行else部分 但是,关于continue语句呢?我测试了似乎在到达continue语句后,将执行else部分。这是真的吗??下面是一个代码示例: # when condition found and it's `true` then `else` part is executing : edibles = ["ham", "sp

我不确定continue语句在带有else子句的for循环中时是如何解释的

如果条件为true,则中断将从for循环退出,否则部分将不执行。如果条件为False,则执行else部分

但是,关于continue语句呢?我测试了似乎在到达continue语句后,将执行else部分。这是真的吗??下面是一个代码示例:

# when condition found and it's `true` then `else` part is executing :

edibles = ["ham", "spam", "eggs","nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        continue
    print("Great, delicious " + food)

else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")`
如果我从列表中删除垃圾邮件,现在条件始终为false且从未找到,但仍会执行else部分:

edibles = ["ham","eggs","nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        continue
    print("Great, delicious " + food)

else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
您的else部分将在这两种情况下执行。 当未找到条件时循环终止时执行else部分。这就是代码中发生的情况。但如果没有continue语句,它也会起同样的作用

现在如何处理break语句的else部分,只有在以下情况下才会执行break语句的else部分:

如果循环正常完成,没有任何中断。 如果循环没有遇到中断。 您的else部分将在这两种情况下执行。 当未找到条件时循环终止时执行else部分。这就是代码中发生的情况。但如果没有continue语句,它也会起同样的作用

现在如何处理break语句的else部分,只有在以下情况下才会执行break语句的else部分:

如果循环正常完成,没有任何中断。 如果循环没有遇到中断。 对于Python中的for循环,else块在循环正常完成时执行,即没有break语句。“继续”不会以任何方式影响它

如果for循环由于break语句而结束,则不会执行else块。如果循环正常无中断退出,则执行else块

从:

当与循环一起使用时,else子句与try语句的else子句的共同点大于if语句的else子句:try语句的else子句在未发生异常时运行,而循环的else子句在未发生中断时运行

我一直记得这件事,因为雷蒙德·海廷格。他说它应该被称为nobreak而不是其他。这也是一个很好的视频,解释了for-else构造的有用性

例如:

numbers = [1,2,3]
for number in numbers:
    if number == 4:
        print("4 was found")
        break
else:
    print("4 was not found")
运行上述代码时,由于4不在列表中,循环不会中断,并且将打印else子句。如果将4添加到列表中并再次运行,它将中断,而else将不打印。在大多数其他语言中,必须添加一些类似于find的sentinel boolean,如果找到4,则将其设置为True,如果find为False,则仅在循环后打印语句

对于Python中的for循环,else块在循环正常完成时执行,即没有break语句。“继续”不会以任何方式影响它

如果for循环由于break语句而结束,则不会执行else块。如果循环正常无中断退出,则执行else块

从:

当与循环一起使用时,else子句与try语句的else子句的共同点大于if语句的else子句:try语句的else子句在未发生异常时运行,而循环的else子句在未发生中断时运行

我一直记得这件事,因为雷蒙德·海廷格。他说它应该被称为nobreak而不是其他。这也是一个很好的视频,解释了for-else构造的有用性

例如:

numbers = [1,2,3]
for number in numbers:
    if number == 4:
        print("4 was found")
        break
else:
    print("4 was not found")

运行上述代码时,由于4不在列表中,循环不会中断,并且将打印else子句。如果将4添加到列表中并再次运行,它将中断,而else将不打印。在大多数其他语言中,必须添加一些类似于find的sentinel boolean,如果找到4,则将其设置为True,如果find为False,则仅在循环后打印语句

for/else仅使用break,else不关心continue-它用于break-else构造。请参阅@Charles answerfor/else仅使用break,而else不关心continue-它用于break-else构造。请参阅@Charles answerAnd,当然,如果for或while循环在函数中,并且您使用return提前退出循环,那么else子句也不会执行。当然,如果for或while循环在函数中,并且您使用return提前退出循环,那么else子句也不会执行。谢谢:我喜欢您的解释你能回答这个问题吗?谢谢:我喜欢你的解释。你能回答这个问题吗?