[英]Python Exit The loop and start the whole process from start once again
我是Python脚本新手。 我已经用python编写了代码。 到现在为止一切正常。 我需要知道的是如何多次运行它,如果条件失败,我想从头开始启动整个脚本。 示例代码如下。 该脚本保存在名为adhocTest.py的文件中,因此我在python shell中像下面那样运行脚本
而1 == 1时:execfile('adhocTest.py')
函数main()正常运行,直到从用户输入接收到的时间txt1 == 2为止。 现在,当txt1的输入更改为2之外时,它退出了脚本,因为我已经给sys.exit()了,我想知道如何才能再次启动脚本adhocTest.py而不退出,如果tx1的输入是不等于2。我试图找到答案,但不知何故我没有得到想要的答案。
import time
import sys
import os
txt = input("please enter value \n")
def main():
txt1 = input("Please enter value only 2 \n")
if txt1 == 2:
print txt
print txt1
time.sleep(3)
else:
sys.exit()
if __name__ == '__main__':
while 1 == 1:
main()
我认为这是您想要的:
import time
import sys
import os
def main():
while True:
txt = input("please enter value \n")
txt1 = input("Please enter value only 2 \n")
if txt1 == 2:
print txt
print txt1
time.sleep(3)
if __name__ == '__main__':
sys.exit(main())
您只是在else
调用main
。 您可以如下重构:
def main():
txt1 = input("Please enter value only 2 \n")
if txt1 == 2:
print txt
print txt1
time.sleep(3)
main()
另外,只需调用main()
(而不是将其包装在while
循环中)并将其移入内部即可。 我还将显式传递txt
而不是依靠作用域:
def main(txt):
while True:
txt1 = input("Please enter value only 2 \n")
if txt1 == 2:
print txt
print txt1
time.sleep(3)
后者避免了递归问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.