Python entrée de la boucle de contrôle

0

La question

Python débutant ici. Pratiquer la saisie de l'utilisateur contrôle. Essayer de faire de la saisie de l'utilisateur boucle au début si quoi que ce soit, mais un nombre entier entre 1 et 10 est utilisé. Essayé pendant des heures, essayé d'utiliser l'Essayer et à l'Exception des commandes, mais ne pouvait pas le faire correctement. Ce que je fais mal? Je vous remercie.

Edit: Merci beaucoup pour votre aide tout le monde, cependant, le problème n'est toujours pas résolu (mais très proche!!!!) Je suis à essayer de comprendre comment faire une boucle de retour pour le début, si quoi que ce soit, MAIS un nombre entier est tapé. Agent de Biscuit (ci-dessus) a donné une grande réponse pour les nombres flottants, mais n'importe quel mot ou la lettre qui est tapé produit toujours une erreur. Im essayant de comprendre comment faire une boucle, quand quelque chose aléatoire (à l'exception des nombres entiers entre 1 et 10) est tapé. Aucun des exemples ci-dessus produit corrcct résultats. Merci pour votre aide

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    else number != (> 0 and < 10):
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
controls input loops python
2021-11-15 08:25:06
3
0

J'ai identifié quelques problèmes.

Tout d'abord, l'instruction d'entrée que vous utilisez permettrait de lever une erreur si une valeur float est entré, parce que le int au début exige que tous les éléments de l'entrée à un certain nombre, et . n'est pas un nombre.

Seconde; votre instruction else. else est juste à gauche que else:et ne prend pas d'arguments ou paramètres par la suite.

Maintenant, comment faire pour vérifier si le nombre n'est pas entier? Essayez ceci:

while True:
    print("Enter a number between 1 and 10")
    number = float(input())
    if (number > 0) and (number < 10) and (round(number)==number):
        print("Thank you, the end.")
        break
    else:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")

Cette accepte une valeur float, mais seulement l'accepte si elle est égale à un nombre entier, d'où le (round(number)==number).

Espère que cela répond à votre question.

2021-11-15 08:32:00
0

Tout d'abord, vous ne pouvez pas utiliser une condition dans un else l'énoncé. Aussi, vous devez utiliser or opérateur au lieu de and si l'une des conditions est acceptable.
Ainsi, votre code doit ressembler à ceci

while True:
    print("Enter a number between 1 and 10")
    number = int(input())
    if (number > 0) and (number < 10):
        print("Thank you, the end.")
        break
    elif number < 0 or number >10:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
2021-11-15 08:32:15
0

Grâce à accusé de réception (ci-dessus) pour m'indiquer un lien utile. En étudiant un autre thread, j'ai trouvé la solution. Il ne peut pas être parfait du code, mais ça marche à 100%:

while True:
    try:
        print("Enter a number between 1 and 10")
        number = float(input())
        if (number > 0) and (number < 10) and (round(number)==number):
            print("Thank you, the end.")
            break
        else:
            print("\n")
            print("It has to be a whole number between 1 and 10.")
            print("Please try again:")
            print("\n")
            continue
    except ValueError:
        print("It has to be a whole number between 1 and 10.")
        print("Please try again:")
        print("\n")
2021-11-16 06:21:03

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................