Rozdział 9 · Słuchaj mojego rozkazu!

Projektowanie warunku: input, walidacja, granice

Powtarzalny sposób podejścia do każdego warunku — od wymagań po przetestowaną wartość graniczną.

Walidacja to nie to samo co rozwiązanie

Przed podjęciem decyzji na podstawie wprowadzonych danych musisz sprawdzić, czy dane znaczące. To są dwa różne kroki:

validaciya_i_reshenie.py
age_text = input(„Wiek: ”).strip()

if age_text.isdigit():          # 1. walidacja
    age = int(age_text)
    if age >= 18:                #2. Rozwiązanie
        print(„Dostęp dozwolony”)
    else:
        print(„Dostęp zabroniony”)
else:
    print(„To nie wygląda jak liczba”)
Pełna obsługa błędów — przed nami
Tutaj sprawdzamy ręczne wejście przez isdigit() (Rozdział 8). Obecny mechanizm obsługi wyjątków to try/except — pojawi się w osobnym rozdziale później; na razie wystarczy to proste podejście.

Granice są źródłem większości błędów

„Dozwolone są wartości od 1 do 10 włącznie”

granicy.py
number = 1
print(1 <= number <= 10)   #True – Zgadza się, zawiera krawędzie
print(1 < number < 10)     #False – TRAP: Odrzuceni 1 i 10!
Znaczenie1 &lt;= number &lt;= 10Komentarz
0Falseponiżej granicy
1Truedokładnie na granicy — wchodzi
10Truedokładnie na granicy — wchodzi
11Falsepowyżej granicy
Off-by-one — klasyczny błąd
Jeśli sformułowanie mówi „inkluzywnie” </> zamiast <=/>=wartości brzegowe są niezauważalnie odrzucane. Ten błąd nazywamy off-by-one („błąd o jednego”

Powtarzalny sposób projektowania warunku

WYMAGANIArzeczy do sprawdzeniaPYTANIEjasno sformułowaćSTANto PythonODDZIAŁYco robić, gdyTrue/FalseGRANICEprzetestować krawędź
Projektowanie warunków powtarzalnych workflow od wymagań do testowanego kodu

Zanim napiszesz kod:

  1. Jakie pytanie zadajemy?
  2. Jakie wartości w nim uczestniczą?
  3. Co oznacza efekt True?
  4. Co powinnam zrobić, jeśli True? A jeśli False?
  5. Czy jest więcej niż dwa scenariusze?
  6. Jakie są tutaj wartości graniczne?

Zawsze testuj wartość tuż poniżej granicy, dokładnie na granicy i tuż nad nią prosta zasada, która wykrywa ogromną część błędów logicznych, zanim do nich dojdzie do użytkownika.

★★ Zadanie samodzielne
Zaprojektuj go samodzielnie

Wymóg: „Rabat przysługuje przy kwocie zakupu od 1000 rubli”. Przejdź przez cały workflow — od pytania po przetestowany kod — i sprawdź wartości graniczne 999, 1000, 1001.

Praktyka: potwierdzenie, granice i off-by-one
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →