La sortie d'un programme à partir d'un if/ELSE avec Python
Je suis tente de sortir d'un programme sans l'aide de sys.exit()
On demande à l'utilisateur s'il veut continuer et si elles entrée "Oui", un message disant est imprimé et le programme continue de s'exécuter. Si elles entrée à rien d'autre qu'un message disant qu'ils ont choisi de sortie est imprimé, puis le programme est destiné à la sortie.
def keep_going():
answer = raw_input("Do you wish to continue?")
if answer == "yes":
print "You have chosen to continue on"
else:
print "You have chosen to quit this program"
Ce que je suis mal, c'est quoi ajouter d'AUTRE pour revenir à quelque chose de ma main, qui entraînera le programme de sortie et comment aller sur l'écriture que dans le code.
- Si je peux demander, quel est le problème avec l'aide de
sys.exit()
? - Le mandat stipule que nous ne sommes pas autorisés à l'utiliser, malheureusement. Au lieu de cela on m'a dit de retourner quelque chose à la main, qui me conduira à la fin de l'ensemble des états pour permettre ensuite le programme de la sortie. Vous ne savez pas comment, est-il possible d'appeler une fonction dans une instruction if? Par exemple, si j'ai créé une fonction appelée la sortie et l'a placé à la fin de mon programme, je suis en mesure d'appeler, par exemple. ELSE: print :Vous avez choisi de quitter le programme" Appels à la sortie ??
- Si aucune des réponses ici vous a aidé, vous devriez haut de voter en cliquant sur la flèche en haut à gauche de chaque réponse. Si aucune des réponses résolu votre problème, il faut la sélectionner en cliquant sur la coche à côté de lui. Cela aidera les futurs visiteurs qui ont le même problème.
Vous devez vous connecter pour publier un commentaire.
Si vous êtes tellement enthousiastes à l'idée de ne pas utiliser
sys.exit()
vous pourriez utiliser directementraise SystemExit
. Bien que cette exception est techniquement soulevées lorsque vous appelezsys.exit()
explicitement. De cette façon, vous n'avez pas besoin deimport sys
à tous.Ce réponse vous donnera l'autre des façons possibles.
Essayez ceci:
Le programme continuera d'appeler
keep_going()
tant qu'elle renvoie true, c'est lorsqu'un utilisateur répond à"yes"
Une encore plus petite solution serait d'appeler
keep_going()
après le "oui" condition:Juste, de retour quelque chose, et si c'est retourné, puis laissez votre fonction principale à la sortie, soit en tombant à la fin, à l'aide d'un
return
déclaration, ou en appelant lesys.exit()
/raise SystemExit
.Comme un exemple, je suis ici de retourner une chaîne de caractères (un autre basé sur ce que l'utilisateur a répondu):
Maintenant, dans
main
, je peux tester qui de ces chaîneskeep_going()
retourné:Alors que les chaînes de travail pour cet effet, d'autres valeurs sont plus couramment utilisés pour une telle tâche. Si
keep_going()
retournéTrue
(au lieu de"keep going"
) ouFalse
(au lieu de"please exit"
), puismain
pourrait être écrit commeCe lit également assez naturellement ("alors continuez à faire de votre code"). Notez que dans ce cas, je suis pas en comparant la valeur de retour pour quelque chose puisque
True
etFalse
sont truthy variables - et Python ramification des structures de contrôle (commeif
etwhile
) savoir comment ils fonctionnent, à savoir qu'il n'est pas nécessaire d'écrirekeep_going() == True
, et en effet il est considéré comme l'onu-pythonic de le faire.main()
fonction.