0
我想编写一个功能terminate()
,该功能根据用户输入停止当前程序。实际上,我有这方面的一些问题,有时它与包括sys.exit()
在功能,有时不合作。有时quit()
正在工作,有时不会。 '有时'意思是说,它取决于调用函数terminate()的哪个部分。原因是什么以及可以使用什么?如何在python 3.5的脚本中包含停止程序功能
我试图复制下面的另一个问题: func1()
调用func2()
为了接收一些输入变量。在func(2)的输入过程中,用户可以选择输入'stop'。在这种情况下,terminate()
被调用并且程序应该退出。但事实并非如此。
在我看来,它首先跳回到func1()
,然后终止,然后出现错误消息,结果是不可迭代的。我该如何防止跳回到func1()
并停止已在terminate()
中的程序?
import sys
def func1():
a, b = func2()
print('something's brewing and I don't know what it is.')
def func2():
check = 0
while check < 1:
x = input('your choice: ')
if x == 'stop':
terminate('stop')
break
else:
a = x
y = input('your choice: ')
if y == 'stop':
terminate('stop')
else:
b = y
check = 1
return a, b
def terminate(stop):
if stop == 'stop':
sys.exit()
# or quit()
else:
return False
print(func1())
提前
你的程序有语法错误的'终止()'的第一行。如果你解决了这个问题,它仍然不会运行,因为你永远不会调用一个函数。请提供重现问题的代码,并在发布之前对其进行测试。 – zondo
谢谢@zondo。我做了一些修改。正如我所描述的,问题有时候会出现,我不知道如何精确地复制它。希望我能得到一些输入的原因是什么。最令人惊叹的是事实上,sys.exit()在某种程度上取决于它的调用方式而有所不同。 –