Comment utiliser la saisie de l'utilisateur à la fin d'un programme?
Je suis nouveau sur python et je suis en train d'écrire un programme qui convertit les Millimètres en Pouces. Fondamentalement, de son une boucle continue qui vous permet de garder la mise en nombres et obtenir le converti de mesure. J'ai envie de mettre une instruction if qui permettra à l'utilisateur de type "fin" à la fin du programme, au lieu de convertir plus d'unités de mesure. Comment puis-je faire de ce travail (ce code python permet de quitter un programme écrit et peut être utilisé dans une instruction if.)?
convert=float(25.4)
while True:
print("*******MM*******")
MM=float(input())
Results=float(MM/convert)
print("*****Inches*****")
print("%.3f" % Results)
print("%.4f" % Results)
print("%.5f" % Results)
Vous pouvez utiliser un
êtes-vous essayer de faire quelque chose comme
Votre code fonctionne déjà. Quand je rentre
Merci de ne pas modifier le code de la question à une réponse. Si vous le faites, les réponses deviennent inutiles.
break
déclaration d'arrêter un while
boucle.êtes-vous essayer de faire quelque chose comme
if ... sys.exit(1)
?Votre code fonctionne déjà. Quand je rentre
end
, le programme se termine. Rappelez-vous, il jette un NameError
avant de terminer, mais t à la fin 🙂Merci de ne pas modifier le code de la question à une réponse. Si vous le faites, les réponses deviennent inutiles.
OriginalL'auteur Inhale.Py | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
À la fin de la boucle, vous pouvez utiliser un
break
déclaration. Ceci peut être utilisé à l'intérieur d'unif
déclaration, puisquebreak
ne regarde que les boucles, pas de conditions. Donc:Vous remarquerez que j'ai utilisé
user_input
, pasMM
? C'est parce que votre code a un problème mineur dès maintenant: vous appelez float() avant de vérifier que l'utilisateur a tapé. Ce qui signifie que si ils type "fin", vous pourrez appeler float("fin") et d'obtenir une exception. Modifiez votre code pour quelque chose comme ceci:Une autre amélioration que vous pouvez faire: si vous voulez que l'utilisateur soit capable de taper "FIN" ou "Fin" ou "fin", vous pouvez utiliser le bas() pour convertir l'entrée en minuscules avant de comparer:
Faire tous ces changements, et de votre programme de travail de la façon dont vous le souhaitez.
input
en Python 3 fonctionne de la manièreraw_input
n'en Python 2.Merci: j'ai manqué. Ma réponse à tenir compte de cela.
vous devez également vous recommandons de parage des espaces à partir de l'entrée, dans le cas où l'utilisateur accidentellement frappé la barre d'espace avant ou après la "fin"
OriginalL'auteur rmunn
Suffit d'utiliser
iter
avec une sentinelle:De cette façon,
iter
appelset stocke la valeur de retour dans
i
jusqu'ài == 'end'
.Notez que vous souhaiterez probablement de vérification d'erreur dans le cas où l'utilisateur entre une non valeur numérique comme dans l'exemple ci-dessus.
raw_input
dans py3x.Je pense qu'il fait en Python 3. N'ont-ils pas renommer
raw_input()
àinput()
en Python 3?Personnellement, je pense que c'est un peu bâclée à faire de cette façon. Par exemple, si l'utilisateur tape "Fin" ou "fin" ou "fin "?
OriginalL'auteur sloth
Vous pouvez utiliser
break
pour sortir de la boucle.MM
est déjà un flotteurbon point, mais facilement corrigé, ne sais pas si elle mérite -1...
Que faire si j'ai changé le code pour convertir=float(25.4) while True: print ("******* MM*******") MM=float(input()) Résultats=float(MM/convertir) print("*****Po*****") print("%.3f" % Résultats) print("%.4f" % Résultats) print("%.5f" % Résultats)
Je n'ai pas de problème avec la suppression downvote 😉 Mais pas jusqu'à ce qu'il/elle le corrige
ne postez pas de code dans les commentaires, il n'est pas lisible.
OriginalL'auteur Shannon Rothe
À la fin de la boucle que vous pourriez utiliser
break
déclaration. Vous pouvez aussi profiter du fait queValueError
est soulevées si non convertibles valeur est émise:Résultat:
Ou si vous voulez sortir uniquement sur la chaîne
exit
et passer à la prochaine boucle si une erreur se produit, belle façon serait:Ou vous pouvez le faire "linuxy" vous pouvez attendre jusqu'à ce que
Ctrl+C
(interruption de Clavier) est pressé et poignée gracieusement:Qui va comme ceci (
^C
désigne l'envoi deCtrl+C
):OriginalL'auteur Vyktor
Tests pour
MM
après qu'elle est entrée par l'utilisateur pourrait fonctionner. Vous utilisez le mot-clébreak
pour sortir de la boucle. Votre exemple, après les ajouts mineurs est comme suit.OriginalL'auteur Sukrit Kalra
ou
Oui, c'est ce que mon premier exemple? J'ai juste fait une option supplémentaire pour écrire quitter 🙂
aussi, vous n'avez
MM=float(input())
qui fait qu'il est impossible de vérifierMM=="string"
parce queMM
n'est plus une chaîne de caractères, c'est un nombre.OriginalL'auteur Torxed