Python vstup riadiacej slučky

0

Otázka

Python začiatočník tu. Cvičí užívateľ vstupnej kontroly. Snaží, aby sa na používateľský vstup slučky na začiatku, ak nič, ale celé číslo medzi 1 a 10 sa používa. Boli snaží hodín, snažil pomocou Skúste a s Výnimkou príkazov, ale nemohol to urobiť správne. Čo robím zle? Ďakujem.

Úprava: Ďakujem vám veľmi pekne za vašu pomoc každého, avšak problém stále nie je vyriešený (ale veľmi blízko!) Snažím sa prísť na to, ako sa vrátili späť na začiatok ak nič, ALE celé číslo je zadané. Agent Biscuit (vyššie) dali veľký odpoveď na plávajúce čísla, ale žiadne slovo alebo písmeno, ktoré je zadané stále produkuje chybu. Im snaží sa pochopiť, ako slučky, keď nič náhodné (okrem celé čísla medzi 1 a 10) je napísané. Žiadny z vyššie uvedených príkladov vyrobené corrcct výsledky. Ďakujeme vám za vašu 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 identifikovať niektoré problémy.

Po prvé, vstupné vyhlásenie používate len by zvýšiť chybu, ak float hodnota je zapísaná, pretože int na začiatku vyžaduje, aby všetky prvky textu, aby sa počet, a . nie je číslo.

Druhý; vaše iný ziskov a strát. else je práve odišiel ako else:a trvá žiadne argumenty alebo parametre neskôr.

Teraz, ako zistiť, či číslo nie je celé? Skúste 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:")

Tento prijíma float hodnota, ale len prijíma, ak je rovnaká ako celé číslo, a teda (round(number)==number).

Dúfam, že odpoveď na vašu otázku.

2021-11-15 08:32:00
0

Po prvé, nie je možné použiť stave v else ziskov a strát. Tiež budete musieť použiť or prevádzkovateľ namiesto and ak jedna z podmienok je prijateľné.
Takže, váš kód musí byť ako tento

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

Vďaka ack (vyššie) pre ukázal mi užitočný odkaz. Štúdiom iného vlákna, že som našiel riešenie. To nemusí byť dokonalý kód, ale funguje to na 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 iných jazykoch

Táto stránka je v iných jazykoch

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