我想从控制程序功能的主要功能中运行Python程序功能
while True:
我被认为是个好习惯。我以为程序函数中的return调用会让我失望,但是我陷入了无限循环。键入“ n”应该会打破循环-我该怎么做,这是明智的做法吗?
def main():
while True:
runPgm()
def runPgm():
while True:
a = str(input("Input?: "))
if a == 'n':
break
return
if __name__ == '__main__':
main()
答案 0 :(得分:1)
您只需要一个无限循环
def main():
runPgm()
def runPgm():
while True:
a = str(input("Input?: "))
if a == 'n':
return
if __name__ == '__main__':
main()
答案 1 :(得分:0)
这不起作用,因为您的break
语句(和后续的return
)仅退出了对runPgm
函数的当前调用。但这会使您返回到main
中的循环,而该循环永远不会中断。
通常,您可以通过设置一个布尔值标志来表示要进行进一步的中断,这样可以进行“多次中断”,这在外部循环中进行了检查。但是,在您的情况下,我认为更简单的解决方案是仅使用其中一个循环,而不同时使用两个循环。只需完全摆脱main
函数,然后调用runPgm
即可!
答案 2 :(得分:0)
在这方面有两件事适合您。
g
循环。while True
仅在此处使用break
,因为一旦返回,函数就会退出。请参见下面的python3代码示例。
return
答案 3 :(得分:0)
我的初始代码的原始来源是pygame手册,这里的答案表明我不需要遵循该方法。但是,我仍然不确定为什么pygame中的示例可以自行解决。但这超出了此问题的范围,我很满意不需要实现它。