Zajęcia 3 - Instrukcje warunkowe
Instrukcji warunkowych używa się by spowodować jakąś akcję / wywołać jakiś efekt pod jakimś warunkiem. W tym celu używa się operatorów takich jak:
Operator | Opis |
---|---|
== | jest równe (identyczne) |
!= | nie jest równe (różni się) |
> | jest większe |
>= | większe lub równe |
< | mniejsze |
<= | mniejsze lub równe |
Nowością dla mnie było to, że w Pythonie porównywanie stringów nie wyrzuca błędu. Dzieje się tak dlatego, że Python przerabia każdy znak na liczbę według ściśle określonej tablicy znaków (unicode) i porównuje właśnie te liczby.
if, elif i else
Czasem komputer widzi więcej niż człowiek. Tak właśnie jest z if i elif - dla niewprawionego oka różnica może nie istnieć, a jednak!
Kup mleko, a jeśli będą jajka to weź 10.
Na czym więc polega różnica? Gdybyśmy używali jedynie instrukcji if program sprawdzał by każdy warunek osobno, niezależnie od wyniku poprzedniego warunku - to tak jakbyśmy znaleźli idealną sukienkę, ale jeszcze wpadli do 5 innych sklepów żeby upewnić się, czy aby na pewno ta już znaleziona jest idealna. Można? Można. Ale po co.
W momencie gdy wprowadzimy instrukcje elif/else porównania wykonują się jedynie do momentu znalezienia ideału. Cóż za oszczędność czasu i energii!
A co, gdy chcemy spasować?
Gdy z jakiegoś powodu chcemy aby jakaś instrukcja nie wywoływała żadnego efektu, to nie możemy ghostować komputera. Należy go uprzedzić, że w tym konkretnym przypadku nie jesteśmy zainteresowani żadną akcją.
Na szczęście Python jest gotowy na taką okazję!
ilosc_mleka = 1
if sa_jajka:
ilosc_mleka = 10
else:
pass
Operatory logiczne
Warto w tym miejscu przypomnieć sobie o żelaznej logice, a zwłaszcza o operatorach and i or.
X and Y dają True, tylko jeśli obie są True. Jeśli jedna z nich jest False to całe wyrażenie jest False. Jeśli X chce jechać z góry, a Y nad może, to nie wylądują w Poznaniu, tylko zostaną w domu (chyba, że wcześniej już mieszkali w Poznaniu).
Jeśli natomiast X chce jechać albo nad morze or w góry, to sprawa przedstawia się zupełnie inaczej. Wystarczy, że razem z Y odwiedzą tylko jedno miejsce, żeby poziom szczęścia był na True. Jednak jeśli nie pojadą ani tu ani tu to wyjdzie z tego jedno wielkie rozczarowanie w postaci False.
Stanowczo zaprzeczam
Czyli co jeśli nie mogę się zdecydować? Zawsze można użyć operatora not. Dzięki niemu zmieniamy jego wartość logiczną na przeciwną.
kto_zarzadza_pieniedzmi= "ja"
if not kto_zarzadza_pieniedzmi == "ja":
pring("trzeba coś zmienić")
else:
print("wszystko jest w najlepszym porządku")