Rozdział 10 · Trochę automatyzacji!

Kontrola wejścia pętli

Jednym z najbardziej praktycznych wzorców while jest ponowne zapytanie użytkownika, aż dane będą odpowiednie.

Problem: użytkownik może wpisać cokolwiek

Program w rozdziale 9 oczekiwał od użytkownika liczby — ale co jeśli wpisał to słowo lub Zostawić pole puste? Pętla while pozwala ci zapytać ponownie, aż Wkład nie stanie się odpowiedni:

proverka_vvoda.py
vozrast = input(„Wejdź w wiek: ”)
while not vozrast.isdigit():
    print(„Musisz wpisać numer!”)
    vozrast = input(„Wejdź w wiek: ”)

vozrast = int(vozrast)
print(„Dziękuję! Za ciebie”, vozrast, „lat”)
STARTna pierwszą wpłatędane wejściowe nie są liczbą?TAKzgłosić błąduzyskać nowe wejścietemuNIEKONIEC
Pętla powtórkową: Pytaj ponownie, aż dane wejściowe będą odpowiednie
isdigit() jest prosty, ale ograniczony sprawdzenie
str.isdigit() sprawdza, że łańcuch znaków składa się tylko z cyfr — to wystarczy dla liczb całkowitych dodatnich, ale nie odróżnia "-5" (liczba ujemna) lub "3.5" (ułamek) od nieprawidłowego wejścia. Bardziej wiarygodnym sposobem sprawdzenia jest projekt try/except — nauczymy się jej w następnych rozdziałach; teraz wystarczy umieć sprawdzać liczby całkowite dodatnie.

Ograniczenie liczby prób

Czasem nie warto pytać bez końca – rozsądne jest ograniczenie liczby prób:

proverka_s_limitom.py
popytki = 0
max_popytok = 3

while popytki < max_popytok:
    vozrast = input(„Wejdź w wiek: ”)
    if vozrast.isdigit():
        print(„Przyjęte:”, vozrast)
        break
    print(„To nie brzmi jak liczba.”)
    popytki += 1
else:
    print(„Za dużo złych prób.”)
Tu znów przydało się loop-else
Blok else u while odniesie sukces tylko wtedy, gdy próby zakończą się niepowodzeniem break dokładnie to, czego potrzeba, by zgłosić „zbyt wiele nieudanych prób”
Praktyka: Kontrola wejścia pętli
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →