我是Python Scripting的新手。我在python中编写了一个代码。到现在为止它工作得很好。我需要知道的是如何多次运行它,如果条件失败,我想从启动开始整个脚本。示例代码如下。这个脚本保存在名为adhocTest.py的文件中,所以我在python shell中运行如下脚本
而1 == 1: 的execfile( 'adhocTest.py')
函数main()正常运行,直到从用户输入接收的时间txt1 == 2。现在当txt1的输入变为2以外时它会退出脚本,因为我已经给出了sys.exit()我需要知道的是如果tx1的输入是tc1的输入,我怎么能再次启动脚本adhocTest.py而不退出不等于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()
答案 0 :(得分:0)
我认为这就是你想要的:
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())
答案 1 :(得分:0)
您只是在main
中重新致电else
。您可以重新考虑如下因素:
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)
后者避免了递归问题。