当前位置: 首页 > 面试题库 >

使用功能突破while循环

盖成弘
2023-03-14
问题内容

有什么方法可以使用函数打破无限循环吗?例如,

# Python 3.3.2
yes = 'y', 'Y'
no = 'n', 'N'
def example():
    if egg.startswith(no):
        break
    elif egg.startswith(yes):
        # Nothing here, block may loop again
        print()

while True:
    egg = input("Do you want to continue? y/n")
    example()

这将导致以下错误:

SyntaxError: 'break' outside loop

请说明为什么会发生这种情况以及如何解决。


问题答案:

就我而言,您不能从内部调用break,example()但是可以使其返回值( 例如:boolean )以停止无限循环

编码:

yes='y', 'Y'
no='n', 'N'

def example():
    if egg.startswith(no):
        return False # Returns False if egg is either n or N so the loop would break
    elif egg.startswith(yes):
        # Nothing here, block may loop again
        print()
        return True # Returns True if egg is either y or Y so the loop would continue

while True:
    egg = input("Do you want to continue? y/n")
    if not example(): # You can aslo use "if example() == False:" Though it is not recommended!
        break


 类似资料:
  • 问题内容: 我正在尝试制作一个具有if / elif语句的函数,并且我希望if中断while循环。该函数用于文本冒险游戏,是/否的问题。到目前为止,这是我想出的。 现在我不确定我是否正确使用该功能,但是当我尝试一下时,它说我不能中断该功能。因此,如果有人可以帮助我解决该问题,并且如果函数和调用函数本身的格式错误,则可以帮助我,将不胜感激。 问题答案: 您可以例外处理: 这样一遍又一遍地循环,但是在

  • 问题内容: 有没有比抛出异常更简单的方法来摆脱嵌套循环?(在Perl中,您可以给每个循环加上标签,至少可以继续一个外部循环。) 即,有没有比以下更好的方法: 问题答案: 至少有人建议,但也拒绝了。我认为没有其他方法,只需重复测试或重新组织代码即可。有时有点烦人。 范·罗瑟姆(van Rossum)先生在拒绝消息中提到使用,这确实很明智,我需要个人记住这一点。:)

  • 很好的一天!我面临着编写将代理分配到SelectOutputOut块的函数的挑战。考虑到使用if的各种场景。。。函数中的else语句我理解必须涵盖所有可能性(如此处所建议)。然而,问题是,我不希望代理在获得适当的SelectOutputOut块之前离开该函数。如果任何服务块(Network1、Network2或Network3)中没有足够的资源,则可能会出现这种情况。在这种情况下,需要等待任何服务

  • 问题内容: 在我的代码中,我有一个for循环,迭代一个代码方法,直到满足for条件为止。 反正有没有打破这个for循环? 因此,如果我们看下面的代码,如果我们想在达到“ 15”时打破这个for循环,该怎么办? 我尝试了以下无济于事: 我尝试了一个循环: 我可以实现我想要的唯一方法是打破for循环,我不能暂时将其替换,如果要使用if语句。 编辑: 仅作为示例提供了此代码,这不是我试图将其实现的代码。

  • 前面说过, 一台普通计算机的TPS 理论上限约为7千TPS。 如果要让整个系统的TPS更高,一种方式是使用高性能的计算机,另一种就是将单计算机处理改为多计算机处理。 本系统使用多链方式,链与链可以并行处理,所以可以将不同的链的处理放到不同的计算机上,实现并行处理,避免单节点的硬件、网络等瓶颈。 这样就能够做到系统性能根据链的增加而线性增长。 如果某个节点性能不足,可以新增一个计算机,将部分链的处理

  • 问题内容: 我正在使用量角器和黄瓜框架;如何突破.filter或.map循环?如果找到匹配项,我不想继续进行迭代! 上面的代码找到了元素,但是继续进行迭代直到结束,而不是在存在匹配项时停止并通过调用 errorCallback 函数进行 中断 。 鉴于.map函数返回“ 解析为map函数返回的值数组的诺言 ” http://www.protractortest.org/#/api?view=Ele