Warunki: if i else – program podejmuje decyzję
Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.
Czego się nauczysz
Wszystko, co dotąd pisałeś, wykonywało się od pierwszej linii do ostatniej, zawsze tak samo. Od dziś program może wybierać: jedno zrobi w jednej sytuacji, a co innego w drugiej. To moment, w którym lista poleceń staje się programem.
Po tej lekcji:
- napiszesz warunek z dwukropkiem i poprawnym wcięciem,
- wymienisz sześć operatorów porównania,
- wyjaśnisz różnicę między
=a==, - dopiszesz blok
elsei będziesz wiedzieć, że nie ma on własnego warunku.
Budowa instrukcji if
Instrukcja if sprawdza warunek. Jeśli jest prawdziwy, wykonuje przypisany do siebie fragment. Jeśli fałszywy – pomija go i idzie dalej.
wiek = 20
if wiek >= 18:
print("Pelnoletni")
print("Mozesz glosowac")
print("Koniec")
Cztery elementy, wszystkie obowiązkowe:
- słowo
if, - warunek, czyli coś, co jest prawdą albo nieprawdą,
- dwukropek na końcu linii,
- wcięcie w liniach, które mają się wykonać warunkowo.
Wcięcie decyduje o wszystkim
Python rozpoznaje po wcięciu, które linie należą do warunku. Linia wcięta wykona się tylko wtedy, gdy warunek jest prawdziwy. Linia bez wcięcia wykona się zawsze.
Standard to cztery spacje. Edytor zwykle wstawia je sam po dwukropku.
Operatory porównania
==równe:5 == 5!=różne:5 != 3>większe:7 > 3<mniejsze:3 < 7>=większe lub równe:5 >= 5<=mniejsze lub równe:3 <= 7
Porównywać można też teksty: imie == "Anna" jest prawdą, gdy w zmiennej siedzi dokładnie ten napis. Wielkość liter ma znaczenie – "Ala" == "ala" to fałsz.
Jeden znak równości to co innego niż dwa
To najczęstsza pomyłka na tej lekcji.
=przypisuje wartość do zmiennej. To polecenie.==porównuje dwie wartości. To pytanie, na które odpowiedź brzmi prawda albo fałsz.
ocena = 5 # przypisanie
if ocena == 5: # porównanie
print("Piatka!")
Zapis if ocena = 5: kończy się błędem SyntaxError.
Sposób na zapamiętanie: jeśli w zdaniu pytasz „czy?”, potrzebujesz dwóch znaków. Jeśli mówisz „niech będzie”, wystarczy jeden.
else – gdy warunek nie jest spełniony
Blok else wykonuje się dokładnie wtedy, gdy warunek z if okazał się fałszywy. Zawsze wykona się jeden z dwóch bloków – nigdy oba i nigdy żaden.
wiek = 15
if wiek >= 18:
print("Pelnoletni")
else:
print("Niepelnoletni")
elsenie ma własnego warunku. Nie pisz po nim niczego oprócz dwukropka.elsemusi stać na tym samym poziomie wcięcia coif, do którego należy. Wcięcie go głębiej da IndentationError.elsejest opcjonalne. Samifbezelsejest w pełni poprawny.
Spróbuj sam
W kodzie z lekcji zmieniaj wartości zmiennych (wiek, ocena, haslo) i sprawdzaj, którą drogą pójdzie program. Możesz też usunąć # z linii if x = 5: i zobaczyć błąd na własne oczy.
Zadania z lekcji:
- Utwórz zmienną
ocena. Jeśli jest większa lub równa 3, wypisz „Zdane”, w przeciwnym razie „Niezdane”. Sprawdź program dla kilku wartości. - Utwórz zmienną
liczba. Wypisz, czy jest parzysta, czy nieparzysta. Skorzystaj z reszty z dzielenia z lekcji 4. - Utwórz zmienną
haslo. Jeśli jest równeadmin, wypisz „Dostep przyznany”, w przeciwnym razie „Odmowa dostepu”. - Utwórz dwie zmienne liczbowe i wypisz, która jest większa. Jeśli są równe, wypisz, że są równe.
Sprawdź się
- Napiszę warunek z dwukropkiem i poprawnym wcięciem.
- Wymienię sześć operatorów porównania.
- Wyjaśnię różnicę między
=a==. - Dopiszę blok
elsei wiem, że nie ma on własnego warunku.
Na następnej lekcji: elif, czyli więcej niż dwie możliwe drogi – i dlaczego kolejność warunków potrafi zmienić wynik programu.
Notatki
Prezentacja
Kod
Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.