Python ingresso loop di controllo

0

Domanda

Python principiante qui. La pratica utente controllo di input. Cercando di fare l'input dell'utente loop all'inizio se non altro, ma un numero intero compreso tra 1 e 10 è utilizzato. Cercato per ore, provato, Prova e ad Eccezione dei comandi, ma non riuscivo a farlo correttamente. Che cosa sto facendo di sbagliato? Grazie.

Edit: La ringrazio molto per il vostro aiuto a tutti, comunque il problema non è ancora risolto (ma molto vicino!) Sto cercando di capire come tornare indietro all'inizio, se nulla, MA un intero numero è stato digitato. Agente di Biscotto (sopra) ha dato una grande risposta per numeri in virgola mobile, ma qualsiasi parola o la lettera che viene digitato ancora produce un errore. Im cercando di capire come loop quando tutto casuale (ad eccezione di numeri interi compresi tra 1 e 10) è inserito. Nessuno di questi esemplari corrcct risultati. Grazie per il vostro aiuto

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

Ho individuato alcuni problemi.

Primo, l'istruzione di input si utilizza vorrei solo sollevare un errore se un valore float è entrato, perché il int all'inizio richiede che tutti gli elementi di ingresso per essere un numero, e . non è un numero.

Secondo la vostra istruzione else. else è solo a sinistra come else:e non accetta argomenti o parametri in seguito.

Ora, come per controllare se il numero non è tutto? Prova questo:

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:")

Questo accetta un valore di tipo float, ma accetta solo se esso è uguale a un numero intero, quindi il (round(number)==number).

Spero che risponde alla tua domanda.

2021-11-15 08:32:00
0

Prima di tutto, non è possibile utilizzare una condizione in un else istruzione. Inoltre, è necessario utilizzare or operatore invece di and se una delle condizioni è accettabile.
Così, il codice deve essere come questo

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

Grazie per ack (sopra) per indicarmi un link utile. Studiando un altro thread, ho trovato la soluzione. Esso non può essere perfetto codice, ma non funziona al 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

In altre lingue

Questa pagina è in altre lingue

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