Je veux programmer une fonction terminate()
qui arrête le programme en cours en fonction de l'entrée de l'utilisateur. En réalité, j'ai eu quelques problèmes avec cela, parfois cela fonctionne avec l'inclusion de sys.exit()
dans la fonction, parfois non. Parfois, quit()
fonctionne, parfois non. «Parfois» signifie que c'est en fonction de la partie du programme que la fonction terminate() est appelée. Quelle peut être la raison et que peut-on utiliser alternativement?Comment inclure une fonction de programme d'arrêt dans un script en python 3.5
J'ai essayé de reproduire un autre problème ci-dessous: func1()
appelle func2()
afin de recevoir certaines variables d'entrée. Pendant la procédure de saisie dans func (2), l'utilisateur peut choisir d'entrer 'stop'. Dans ce cas, terminate()
est appelé et le programme doit être quitté. Mais ce n'est pas le cas.
Il me semble qu'il revient d'abord à func1()
et se termine alors avec un message d'erreur indiquant que le résultat n'est pas itérable. Comment puis-je empêcher ce retour à func1()
et arrêter le programme déjà dans 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())
Un grand merci à l'avance
Votre programme a une erreur de syntaxe dans la première ligne de 'fin()'. Si vous corrigez cela, il ne fonctionne toujours pas car vous n'appelez jamais une fonction. Veuillez donner un code qui reproduit le problème et le tester avant de le poster. – zondo
merci @zondo. J'ai fait quelques amendements. Comme je l'ai décrit les problèmes apparaissent parfois et je ne sais pas comment le reproduire exactement. En espérant que je reçois des informations sur les raisons qui peuvent être. Ce qui est le plus étonnant est le fait que sys.exit() se comporte différemment selon l'endroit où il est appelé. –