Python vstup regulační smyčky

0

Otázka

Python začátečník. Cvičit uživatel vstupní kontrolu. Snaží se, aby uživatel vstupní smyčka na začátku, pokud nic, ale celé číslo mezi 1 a 10 se používá. Snažím se na hodiny, pokusil pomocí Zkusit a Kromě příkazů, ale nemohl to udělat správně. Co dělám špatně? Děkuji.

Edit: Děkuji moc za vaši pomoc každého, nicméně problém stále není vyřešen (ale velmi blízko!) Snažím se přijít na to, jak smyčky zpět na začátek, pokud se něco ALE celé číslo je napsaný. Agent Sušenky (viz výše) dal skvělou odpověď pro plovoucí čísla, ale libovolné slovo nebo písmeno, které je napsané stále produkuje chybě. Im snaží pochopit, jak smyčky, když něco náhodně (s výjimkou celých čísel mezi 1 a 10) je zadali. Žádná z výše uvedených příkladů vyrábí corrcct výsledky. Děkujeme vám za vaši pomoc

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

Mám určité problémy.

První, vstupní prohlášení používáte by jen zvýšit chybu, pokud je float hodnota je zadána, protože int na začátku vyžaduje, aby všechny prvky vstupního být číslo, a . není číslo.

Druhé; vaše else. else je jen doleva, jak else:a trvá žádné argumenty nebo parametry poté.

Nyní, jak zkontrolovat, zda číslo není celé? Zkuste toto:

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

To souhlasí, hodnota float, ale pouze přijímá to, jestli to je rovná celé číslo, proto (round(number)==number).

Doufám, že odpověď na vaši otázku.

2021-11-15 08:32:00
0

Za prvé, můžete použít stav v else prohlášení. Také, budete muset použít or provozovatel místo and pokud jedna z podmínek je přijatelné.
Takže, váš kód musí být takhle

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

Díky ack (výše), za upozornění, abych užitečný odkaz. Tím, že studuje další vlákno, našel jsem řešení. To nemusí být dokonalý kód, ale funguje 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

V jiných jazycích

Tato stránka je v jiných jazycích

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