如何在特定条件下使用另一个函数跳出while循环?

我正在尝试使用在我的 while 循环中运行的另一个函数在某些条件下打破它。我一直在编写练习代码来尝试尝试,但它似乎并没有中断……它只是无限运行


global test


def is_True():

    test = True


for i in range(5):

    test = False

    print("Run number:",i)


    while(test==False):

        print("the is_True method hasn't been called yet")

        is_True()

        print("The is__True method was called")


慕桂英4014372
浏览 233回答 3
3回答

翻翻过去那场雪

你把global语句放在错误的地方。它在函数中表明它test不是局部变量。一个global在全球范围内声明基本上是一个无操作。def is_True():    global test    test = True也就是说,尽可能避免使用全局变量。有is_True回报True,而不是和返回值分配给test在呼叫范围内。def is_True():    return Truewhile not test:    print("...")    test = is_True()    print("...")

qq_笑_17

修改 is_True() 函数:def is_True():    return True并且,在循环内,将其分配给测试:test = is_True()

DIEA

许多其他答案都提到了如何解决这个问题,但我认为解释为什么这不起作用也会有帮助,以帮助将来。在 中is_True,当您分配给 test 时,您正在创建一个新的局部变量,而不是引用名为 的全局变量test。如果要引用全局,请添加global test到is_True. 这将告诉 python 您要引用全局变量,而不是创建一个新的本地变量。当然,您可能不应该为此使用全局变量,因此更好的解决方案是返回Truefromis_True()和 do test = is_True()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python