Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Instrukcja warunkowa w Pythonie


powrót

Instrukcja warunkowa pozwala na sterowanie programem. W zależności od sytuacji "program podejmuje decyzję", którą część kodu ma wykonać, a którą nie.

Spis treści:

Instrukcja warunkowa if

Instrukcja warunkowa if ma postać:

# instrukcje poprzedzające instrukcję if
if warunek lub warunki:
    # jeśli warunek jest prawdziwy, to wejdziesz do bloku if
    instrukcja_1 # instrukcje należące do if rozpoczynają się od wcięcia 
    instrukcja_2 # ta instrukcja także należy do bloku if
instrukcja_3 # ta instrukcja nie należy do bloku if

Jeżeli warunek ma wartość logiczną True, to wykonają się instrukcje, które zapisane są po wcięciu i tworzą one blok należący do if'a.

Przykład 1

x = 3
if x == 3:
    print("tak, to jest trzy")
    print("Jeśli nie wierzysz, to patrz: x =",x)
x = 4
if x < 0: # ten warunek jest nieprawdziwy
    print("tego tekstu nie zobaczysz") # ta instrukcja się nie wykona

Zasada działania instrukcji warunkowej if opiera się na wartości, jaką przyjmuje warunek. W przypadku True (lub wartości równej 1), instrukcje dla bloku if zostaną wykonane. Oznacza to, że w przypadku zmiennych logicznych można użyć skróconej konstrukcji warunku:

x = True
if x:
    print("x ma wartość True")

instrukcja warunkowa if — else

W tej postaci instrukcji warunkowej, wykona się zawsze dokładnie jeden z dwóch bloków. Jeśli warunek (warunki) mają wartość logiczną True, to wykonają się instrukcje należące do bloku if, w przeciwnym razie do bloku else. Część else jest opcjonalna.

if warunek: # na końcu stawiamy dwukropek
    instrukcja_1 # blok if
    instrukcja_2 # blok if
    itd. #blok if
else: # tu też stawiamy dwukropek
    instrukcja_3 # blok else
    instrukcja_4 # blok else

Prześledźmy przykład, który sprawdzi, czy podana osoba jest pełnoletnia.

Przykład 2

x = int(input("Podaj swój wiek: "))
if x >= 18:
    print("jesteś pełnoletni")
else:
    print("nie jesteś jeszcze pełnoletni")

instrukcja warunkowa if elif

Instrukcja warunkowa może mieć wiele instrukcji elif. Każda taka instrukcja posiada warunek do sprawdzenia, a blok do niej należący zaczyna się znakiem dwukropka oraz jest wyróżniony tą samą głębokością wcięcia. Blok instrukcji elif wykona się tylko wtedy, gdy warunek przy niej stojący ma wartość logiczną True, a wszystkie poprzednie warunki miały wartość logiczną False.

instrukcje_poprzedzające_program
if warunek1:
    instrukcje_1 # jeśli warunek1 jest prawdziy
elif warunek2:
    instrukcje_2 # jeśli warunek1 jest nieprawdziy, a warunek2 jest prawdziwy
elif warunek3:
    instrukcje_3 # jeśli warunek1 i warunek2 jest fałszywy, a warunek3 jest prawdziwy
# itd..
else # opcjonalnie
    instrukcje_4 #jeśli wszystkie warunki są fałszywe

Przykład 3

Zadanie. Tabela poniżej określa taryfikator mandatów w pewnym państwie:

Wykroczenie Wysokość mandatu
Przekroczenie prędkości do 10 km 100
Przekroczenie prędkości z przedziału [11, 30] 200
Przekroczenie prędkości > 30 400

Użytkownik podaje liczbę km, jaką przekroczył kierowca. Zadaniem programu jest określenie wysokości mandatu.

Rozwiązanie:

mandat = int(input("Podaj liczbę kilometrów, o jaką przekroczyłeś dozwoloną prędkość: "))
if mandat <= 10:
    print("mandat: 100zł")
elif mandat <= 30:
    print("mandat: 200zł")
else:
    print("mandat: 400zł")

Instrukcja warunkowa if in

Kolejną opcją instrukcji if jest wykorzystanie operatora in, który pozwala w łatwy sposób sprawdzić, czy dany element występuje w zdefiniowanym wcześniej zbiorze:

Przykład 4

x = "ala ma kota"
if "ma" in x:
    print("wyraz 'ma' występuje w zdaniu '",x,"'")
x = (1, 2, 3, 12)
if 12 in x:
    print("liczba 12 występuje w zbiorze",x)

Wyjście

wyraz 'ma' występuje w zdaniu ' ala ma kota '
liczba 12 występuje w zbiorze (1, 2, 3, 12)

Warunki proste i złożone

Konstrukcja warunków instrukcji if i elif może być prosta — złożona z jednego warunku lub złożona z kilku warunków połączonych operatorami logicznymi. Popatrzmy na przykład, który sprawdzi, czy dana liczba naturalna dzieli się bez reszty przez 3 lub reszta z dzielenia tej liczby przez 7 jest równa 2:

Przykład 5 — realizacja zadania z wykorzystaniem  warunków prostych

x = int(input("Podaj liczbę: "))
if x % 3 == 0:
    if x % 7 == 2:
        print("Liczba spełnia kryteria zadania")
    else:
        print("Liczba nie spełnia kryteriów z zadania")
else:
    print("Liczba nie spełnia kryteriów z zadania")

Przykład 6 — realizacja zadania z wykorzystaniem  warunków złożonych

x = int(input("Podaj liczbę: "))
if x % 3 == 0 and x % 7 == 2:
    print("Liczba spełnia kryteria zadania")
else:
    print("Liczba nie spełnia ktyteriów z zadania")

Skrócony if - else, operator trójargumentowy

Wyrażenie warunkowe (ang. conditional expression) w Pythonie pozwala na krótką i zwięzłą formę instrukcji warunkowych. Wyrażenie to jest nazywane także operatorem trójargumentowym i ma następującą składnię:

x = wartość1 if warunek else wartość2

Działa to w następujący sposób:

  • Jeśli warunek jest prawdziwy (True), to x przyjmuje wartość wartość1.
  • Jeśli warunek jest fałszywy (False), to x przyjmuje wartość wartość2.

Jest to przydatne do skrócenia instrukcji warunkowych w przypadku, gdy chcemy przypisać wartość zmiennej w zależności od spełnienia warunku.

Przykład 7

Napisz program, który wypisze tak, jeśli osoba jest pełnoletnia lub nie w przeciwnym razie.

print("tak" if int(input()) >= 18 else "nie")