当用户输入数字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()
答案 0 :(得分:4)
最好使用返回值与您的函数进行通信,而不是更改全局名称。
另外,使用True
和False
,无需使用字符串比较。
简而言之,从您的函数返回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()
然后检查并正确结束。