Warunkowe wykonanie polecenia zapisujemy za pomocą if. Warunek może być dowolnym wyrażeniem logicznym. W ramach warunku możemy wykonać również więcej niż jedno polecenie. Blok poleceń oznaczamy wcięciem:
if answer != 42: # polecenia zostaną wykonane tylko, jeśli warunek jest spełniony:
print("Bad answer") # wyświetlamy komunikat
answer = 42 # dodatkowo zmieniamy zmienną
Gałąź else
Możemy również określić, co ma się stać, gdy warunek nie jest spełniony. W tym celu używamy polecenia else, po którym następuje wcięty blok poleceń:
if x < 10:
print("small") # wykona się, jeśli warunek jest prawdziwy
else:
print("big") # wykona się, jeśli warunek jest fałszywy
Poszczególne warianty obliczeń nazywamy gałęziami, a całą instrukcję warunkową możemy również określać jako rozgałęzienie.
Wielokrotne rozgałęzienie
Jeśli chcemy sprawdzić kilka możliwości, możemy użyć konstrukcji if / elif / else. W niektórych językach programowania do wielokrotnego rozgałęzienia używa się polecenia switch, ale w Pythonie wystarczy elif. Na przykład:
if age < 6:
print("przedszkolak")
elif age < 18: # sprawdzane, jeśli poprzedni warunek nie był prawdziwy
print("uczeń")
elif age < 65: # sprawdzane, jeśli żaden poprzedni warunek nie jest był prawdziwy
print("dorosły")
else: # wykona się, jeśli żaden poprzedni warunek nie jest prawdziwy
print("emeryt")
Z if/elif wykona się maksymalnie jedna – pierwsza, dla której warunek jest prawdziwy. W naszym przykładzie, jeśli w zmiennej age znajduje się wartość 15, zostanie wyświetlone tylko „uczeń”. Warunek age < 65 również jest prawdziwy, ale Python już go nie sprawdza.
Rozgałęzienia zagnieżdżone
Czasem polecenia warunkowe mogą zawierać kolejne rozgałęzienia. Mówimy wówczas o zagnieżdżaniu. W przypadku kolejnych gałęzi musimy zwiększyć wcięcie. Możemy napisać na przykład:
if choice == "tea":
if money >= 10:
print("ok")
else:
print("refuse")
else:
print("not available")
if n % 2 == 1:
if x > 13:
print("Win!")
W niektórych przypadkach zamiast zagnieżdżonego kodu łatwiej i przejrzyściej jest użyć prostego polecenia warunkowego z warunkiem wykorzystującym operatory logiczne. Na przykład ostatni przykład możemy uprościć w ten sposób:
if n % 2 == 1 and x > 13:
print("Win!")