繁体   English   中英

导致无限while循环的逻辑错误

[英]Logical error causing infinite while loop

当用户输入数字0且程序执行task0时,while循环未按我预期的那样结束。 为什么会这样,我该如何解决?

def task0():
    print("Goodbye")
    end = "true"
end = "false"
while end != "true":
    print()
    tasknum = input("Which task would you like to see? ")
    print()
    task = "task" + tasknum
    methodToCall = globals()[task]
    result = methodToCall()

最好通过使用返回值而不更改全局名称来与函数进行通信。

另外,使用TrueFalse ,不需要使用字符串比较。

简而言之,从您的函数返回True并将其分配给end

def task0():
    print("Goodbye")
    return True

end = False
while not end:
    print()
    tasknum = input("Which task would you like to see? ")
    print()
    task = "task" + tasknum
    methodToCall = globals()[task]
    end = methodToCall()

然后检查一下并适当结束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM