Python intrare bucla de control

0

Problema

Python incepator aici. Practicarea user input control. Încercarea de a face o intrare de utilizator bucla de la început, dacă nimic, dar un număr întreg între 1 și 10 este folosit. Fost încercarea de ore, încercat, folosind Încerca și cu Excepția comenzi, dar nu a putut face în mod corect. Ce fac gresit? Multumesc.

Edit: Vă mulțumesc foarte mult pentru ajutor tuturor, cu toate acestea, problema încă nu este rezolvată (dar foarte aproape!) Am încercat să dau seama cum să ne întoarcem la început, dacă nimic, DAR un număr întreg este scris. Agent de Biscuiti (de mai sus) a dat un raspuns bun pentru numere plutitoare, dar orice cuvânt sau o literă care se introduce încă mai produce o eroare. Im încercarea de a înțelege cum de a buclei, atunci când nimic aleatoare (cu excepția numere întregi între 1 și 10) se introduce. Nici unul din exemplele de mai sus a produs corrcct rezultate. Multumesc pentru ajutor

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

Am identificat unele probleme.

În primul rând, declarație de intrare utilizați-ar ridica doar o eroare dacă o valoare float este înscris, pentru că int la începutul necesită toate elementele de intrare să fie un număr, și . nu este un număr.

A doua; altfel declarația dumneavoastră. else este lăsat ca else:și nu ia argumente sau parametri după aceea.

Acum, cum să verificați dacă numărul nu este întreg? Încercați acest lucru:

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

Acesta acceptă o valoare float, dar acceptă numai dacă este egal cu un număr întreg, prin urmare (round(number)==number).

Sper că-ți răspunde la întrebare.

2021-11-15 08:32:00
0

Mai întâi de toate, nu puteți folosi o condiție într-un else declarație. De asemenea, aveți nevoie pentru a utiliza or operator în loc de and dacă una dintre condiții nu este acceptabil.
Deci, codul trebuie să fi o astfel de prognoze

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

Datorită ack (de mai sus) pentru mine, arătând spre un link util. Studiind un alt thread, am găsit soluția. Acesta nu poate fi perfectă cod, dar functioneaza 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

În alte limbi

Această pagină este în alte limbi

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