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”)
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