Dans le manuel, le Guide du débutant de Python 3, il existe un exemple de fonction au chapitre 11.
Le programme est: la sortie, selon le manuel, doit être: p> mais je reçois: p> < Pré> xxx pré> Cependant, si je saisi d'abord une chaîne au lieu d'un entier, l'erreur que la fonction est censée protéger contre, elle fonctionne: p>
3 Réponses :
Lorsque vous entrez un entier au premier essai, vous n'entrez pas la boucle tandis que la boucle (car la condition n'est jamais satisfaite), vous n'allez donc pas atteindre retour code> qui se trouve dans cette boucle. Vous auriez dû mettre ce
retour code> en dehors de la boucle:
Vous avez mis le retour code> à l'intérieur de la boucle, qui n'est jamais entré si vous entrez un numéro comme 20.
Donc:
def get_integer_input(message):
value_as_string = input(message)
while not value_as_string.isnumeric():
print("The input must be an integer greater than zero.")
value_as_string = input(message)
print(value_as_string)
return int(value_as_string)
age = get_integer_input("Please input your age: ")
age = int(age)
print("age is", age)
Merci beaucoup! Cela fonctionne comme il devrait maintenant. Le manuel met le «retour» à l'intérieur de la boucle et je ne pouvais pas travailler l'erreur. C'est la troisième erreur dans le manuel jusqu'à présent - les deux autres étaient plus faciles à trouver - alors peut-être que j'utilise le mauvais livre!
Un simple correctif: a ajouté la valeur de retour juste sous la boucle tandis que dans En tant que telle, mettez une valeur de retour en dehors de celle-ci, tandis que la boucle résout le problème, comme maintenant la fonction est em> renvoyer une valeur au lieu de défaut de défaut à aucun retour. P> p > get_integer_input code> comme sinon, il ne renvoie jamais rien parce que le
value_as_string < / Code> Compte comme numérique lors de la vérification de celle-ci, tandis que la boucle et donc n'est pas fausse et que la boucle tandis que la boucle tandis que ne commence pas d'autres instructions par défaut, le
Age = get_integer_input ("Veuillez saisir votre âge:") < / Code> Obtient un back de basses et quand il tente de résoudre cela à un int:
Âge = Int (Âge) Code> Il jette une erreur comme vous ne pouvez convertir aucune dans un numéro utilisable. P >
Merci beaucoup, cela fonctionne comme il devrait maintenant. Et merci pour l'explication!
Êtes-vous sûr que la fonction dans le livre n'a pas réellement le code> code> dédouané un niveau? (par exemple - ce n'est pas réellement dans le
pendant code> la boucle elle-même ...)