R1PKYylFOHuJd
Ilustracja

Stosowanie instrukcji warunkowej w języku Python

Źródło: Unsplash, domena publiczna.

W tym e‑materiale poznasz i wykorzystasz instrukcje warunkowe do sterowania działaniem programu.

  1. Interaktywna treść merytorycznaInteraktywna treść merytoryczna

  2. MultimediumMultimedium

  3. Zestaw ćwiczeń interaktywnychZestaw ćwiczeń interaktywnych

  4. SłownikSłownik

  5. BibliografiaBibliografia

Aby zrozumieć poruszane w tym materiale zagadnienia, przypomnij sobie:
Twoje cele
  • Omówisz budowę instrukcji warunkowej w języku Python.

  • Napiszesz i uruchomisz program, w którym zastosowana została instrukcja warunkowa.

  • Zastosujesz różne wersje instrukcji warunkowych, wykonując ćwiczenia.

1

Instrukcja warunkowa

Instrukcję warunkową if można przedstawić za pomocą schematu blokowego następująco:

  • Blok początkowy START reprezentuje początek procesu, jest to punkt wyjścia lub stan początkowy przed wykonaniem jakichkolwiek instrukcji warunkowych.

  • Blok operacyjny reprezentuje dowolne instrukcje, kod wykonywany w danym kroku programu.

  • Blok decyzyjny zawiera warunek do oceny. Jest zazwyczaj przedstawiany jako romb z jednym wejściem (na górze) i dwoma wyjściami (dla sytuacji, gdy warunek jest spełniony, oraz sytuacji, gdy nie jest spełniony).

  • Blok końcowy STOP oznacza koniec wykonywania algorytmu

R1IsYLkzJ3bP3
Schemat blokowy
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W językach programowania używamy instrukcji warunkowych, by sterować przepływem wykonywania programu, czyli wykonywać bloki instrukcji dla określonych warunków logicznychwarunek logicznywarunków logicznych. Za pomocą instrukcji warunkowych możemy na przykład sprawdzić, czy liczba jest podzielna przez inną liczbę albo czy dany wyraz zawiera wybraną literę. Do zapisywania warunków logicznych wykorzystujemy operator relacjioperator relacjioperator relacji. Zapoznajmy się z najważniejszymi:

Operator

Opis

<

mniejszy niż

>

większy niż

<=

mniejszy lub równy

>=

większy lub równy

==

równy

!=

nierówny (różny)

Ważne!

W przypadku ostatnich operatorów (<=>=) zwracajmy szczególną uwagę na kolejność znaków. Znak mniejszości lub większości jest zawsze pierwszym znakiem!

Ogólna składnia instrukcji warunkowej w Pythonie jest następująca:

Linia 1. if warunek dwukropek. Linia 2. kratka Instrukcje wykonane gdy warunek jest spełniony. Linia 3. else dwukropek. Linia 4. kratka Instrukcje wykonane gdy warunek nie jest spełniony.

Pierwszy wiersz definiuje warunek, który ma zostać sprawdzony. Jeśli warunek jest spełniony, wtedy zostaną wykonane instrukcje znajdujące się w bloku instrukcji po słowie kluczowym if. Jeśli warunek nie jest spełniony, zostaną wykonane instrukcje znajdujące się w bloku instrukcji po słowie kluczowym else (co tłumaczymy również jako w każdym innym przypadku).

Przykład 1

W poniższym przykładzie wypisany zostanie tylko jeden z komunikatów. Jeśli zmienna będzie równa 0, kod wykona się tylko w części instrukcji warunkowej następującej po if. Dla każdego innego przypadku, jeśli zmienna nie będzie równa 0, wykona się kod zawarty po słowie kluczowym else.

W tym przypadku wypisany komunikat to: Zmienna równa się zero.

Linia 1. zmienna znak równości 0. Linia 3. if zmienna znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Zmienna równa się zero cudzysłów zamknij nawias okrągły. Linia 5. else dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Zmienna jest różna od zera cudzysłów zamknij nawias okrągły. Linia 8. kratka Efekt działania programu dwukropek. Linia 9. kratka Zmienna równa się zero.

Po zmianie wartości zmiennej na 1, wyświetli się komunikat Zmienna jest różna od zera.

Linia 1. zmienna znak równości 1. Linia 3. if zmienna znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Zmienna równa się zero cudzysłów zamknij nawias okrągły. Linia 5. else dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Zmienna jest różna od zera cudzysłów zamknij nawias okrągły. Linia 8. kratka Efekt działania programu dwukropek. Linia 9. kratka Zmienna jest różna od zera.

Instrukcja warunkowa nie musi zawierać słowa kluczowego else. Możemy zapisać tylko słowo kluczowe if wraz z warunkiem oraz blok instrukcji, który wykona się po jego spełnieniu.

Linia 1. if warunek dwukropek. Linia 2. kratka Instrukcje wykonane gdy warunek jest spełniony.
Ważne!

Blok kodublok instrukcjiBlok kodu w języku python oznaczamy za pomocą wcięcia – domyślnie są to cztery znaki spacji.

Alternatywa – różne przypadki z różnymi warunkami logicznymi

Można również stosować bardziej złożone instrukcje warunkowe, używając słowa kluczowego elif, które oznacza else if. Instrukcja ta jest używana do sprawdzenia dodatkowych warunków, jeżeli warunek w instrukcji if nie jest prawdziwy. Możemy użyć wielu instrukcji elif po instrukcji if do obsługi wielu różnych warunków.

Ogólna konstrukcja:

Linia 1. if warunek podkreślnik 1 dwukropek. Linia 2. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 jest spełniony. Linia 3. elif warunek podkreślnik 2 dwukropek. Linia 4. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 nie jest spełniony przecinek ale warunek podkreślnik 2 jest spełniony. Linia 5. elif warunek podkreślnik 3 dwukropek. Linia 6. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 oraz warunek podkreślnik 2 nie są spełnione przecinek ale warunek podkreślnik 3 jest spełniony. Linia 7. else dwukropek. Linia 8. kratka Instrukcje wykonane przecinek gdy żaden warunek nie jest spełniony.
Przykład 2

W przykładzie wypisany zostanie tylko jeden z komunikatów, mimo że dla zmiennej równej 50 prawdziwym jest, że liczba ta jest większa i od 0 i od 10 (oba warunki postawione przy słowie elif). Gdy wartość zmiennej nie będzie większa bądź równa 100 (pierwszy warunek), wykona się jedynie instrukcja podana dla pierwszego spełnionego warunku, a reszta nie będzie już sprawdzana.

Linia 1. zmienna znak równości 50. Linia 2. if zmienna zamknij nawias ostrokątny znak równości 100 dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 100 cudzysłów zamknij nawias okrągły. Linia 4. elif zmienna zamknij nawias ostrokątny znak równości 10 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100 cudzysłów zamknij nawias okrągły. Linia 6. elif zmienna zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10 cudzysłów zamknij nawias okrągły. Linia 8. else dwukropek. Linia 9. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od zera cudzysłów zamknij nawias okrągły. Linia 11. kratka Efekt działania programu dwukropek. Linia 12. kratka Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100.

Po zmianie wartości zmiennej na liczbę ujemną, np. -50, wykona się instrukcja po słowie else (w przeciwnym razie), ponieważ żaden z wcześniej postawionych warunków nie został spełniony.

Linia 1. zmienna znak równości minus 50. Linia 2. if zmienna zamknij nawias ostrokątny znak równości 100 dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 100 cudzysłów zamknij nawias okrągły. Linia 4. elif zmienna zamknij nawias ostrokątny znak równości 10 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100 cudzysłów zamknij nawias okrągły. Linia 6. elif zmienna zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10 cudzysłów zamknij nawias okrągły. Linia 8. else dwukropek. Linia 9. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od zera cudzysłów zamknij nawias okrągły. Linia 11. kratka Efekt działania programu dwukropek. Linia 12. kratka Liczba jest mniejsza od zera.

Zagnieżdżone instrukcje warunkowe

Zagnieżdżone instrukcje warunkowe w języku Python pozwalają na umieszczenie jednej instrukcji warunkowej wewnątrz innej instrukcji warunkowej – używamy ich, gdy mamy do czynienia z sytuacjami, które wymagają sprawdzania różnych warunków.

Ogólna składnia zagnieżdżonych instrukcji warunkowych w języku Python:

Linia 1. if warunek podkreślnik 1 dwukropek. Linia 2. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 jest spełniony. Linia 3. if warunek podkreślnik 2 dwukropek. Linia 4. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 oraz warunek podkreślnik 2 są spełnione. Linia 5. else dwukropek. Linia 6. kratka Instrukcje wykonane przecinek gdy warunek podkreślnik 1 jest spełniony przecinek ale warunek podkreślnik 2 nie jest spełniony. Linia 7. else dwukropek. Linia 8. kratka Instrukcje wykonane gdy warunek podkreślnik 1 nie jest spełniony.

W powyższym przykładzie, jeśli warunek_1 jest spełniony, to zostaną wykonane instrukcje z wiersza 2. Następnie, jeśli warunek_2 jest spełniony, zostaną wykonane instrukcje z wiersza 4. Jeśli warunek_2 nie jest spełniony, ale warunek_1 jest spełniony (pamiętamy, że warunek_2 jest sprawdzany tylko w sytuacji gdy warunek_1 jest prawdziwy), to zostaną wykonane instrukcje z wiersza 6. Jeśli warunek_1 nie jest spełniony, zostaną wykonane instrukcje z wiersza 8.

Przykład 3

W poniższym przykładzie zostaną wypisane dwa komunikaty.

Najpierw sprawdzany jest warunek, czy liczba jest parzysta (czyli czy reszta z dzielenia przez 2 wynosi 0). Jeśli ten warunek jest spełniony, sprawdzamy, czy parzysta liczba jest większa bądź równa 0. Jeśli tak to wypisywany jest komunikat Liczba jest większa bądź równa 0, a w każdym innym przypadku (czyli dla liczb ujemnych) wypisujemy komunikat Liczba jest mniejsza od 0.

Linia 1. zmienna znak równości minus 10. Linia 3. if zmienna procent 2 znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest parzysta cudzysłów zamknij nawias okrągły. Linia 6. if zmienna zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 cudzysłów zamknij nawias okrągły. Linia 9. else dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 0 cudzysłów zamknij nawias okrągły. Linia 12. else dwukropek. Linia 13. print otwórz nawias okrągły cudzysłów Liczba jest nieparzysta cudzysłów zamknij nawias okrągły. Linia 15. kratka Efekt działania programu dwukropek. Linia 16. kratka Liczba jest parzysta. Linia 17. kratka Liczba jest mniejsza od 0.

Po zmianie wartości zmiennej na -7, liczba nie jest już parzysta, zatem nie spełnia pierwszego warunku (reszta z dzielenia przez 2 nie wynosi 0). W konsekwencji program przechodzi do wykonania instrukcji zapisanych po słowie kluczowym else. Jeśli liczba nie jest parzysta, nie są sprawdzane dodatkowe warunki.

Linia 1. zmienna znak równości minus 7. Linia 3. if zmienna procent 2 znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest parzysta cudzysłów zamknij nawias okrągły. Linia 6. if zmienna zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 cudzysłów zamknij nawias okrągły. Linia 9. else dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 0 cudzysłów zamknij nawias okrągły. Linia 12. else dwukropek. Linia 13. print otwórz nawias okrągły cudzysłów Liczba jest nieparzysta cudzysłów zamknij nawias okrągły. Linia 15. kratka Efekt działania programu dwukropek. Linia 16. kratka Liczba jest nieparzysta.

Innym przypadkiem zagnieżdżania instrukcji warunkowych, jest konstrukcja z else: po której następuje if. Słowo kluczowe if zawsze musi występować na początku bloku kodu.

Zagnieżdżenie instrukcji if po słowie kluczowym else pozwala osiągnąć efekt podobny do elif.

Przykład 4

Chcemy sprawdzić, czy dana liczba całkowita przechowywana w zmiennej należy do jednego z podanych przedziałów. Program powinien wyświetlić tylko jeden komunikat.

Możemy to zrobić za pomocą zagnieżdżonych instrukcji warunkowych. Dla wartości zmiennej równej 20 program przejdzie przez kolejne zagnieżdżenia instrukcji warunkowych if...else i wyświetli wyłącznie przedostatni komunikat informujący, że wartość zmiennej należy do drugiej dziesiątki.

Linia 1. zmienna znak równości 20. Linia 3. if zmienna otwórz nawias ostrokątny znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest ujemna lub równa 0 cudzysłów zamknij nawias okrągły. Linia 5. else dwukropek. Linia 6. if zmienna otwórz nawias ostrokątny znak równości 10 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba należy do przedziału otwórz nawias ostrokątny 1 średnik 10 zamknij nawias ostrokątny kropka cudzysłów zamknij nawias okrągły. Linia 8. else dwukropek. Linia 9. if zmienna otwórz nawias ostrokątny znak równości 20 dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba należy do przedziału otwórz nawias ostrokątny 11 średnik 20 zamknij nawias ostrokątny kropka cudzysłów zamknij nawias okrągły. Linia 11. else dwukropek. Linia 12. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 kropka cudzysłów zamknij nawias okrągły.

Mimo że powyższy kod jest w pełni poprawny i działa tak, jak tego oczekujemy, nie jest to zalecany sposób stosowania zagnieżdżonych instrukcji warunkowych. Ten sam program można napisać za pomocą konstrukcji if...elif...else, a jej zastosowanie jest bardziej zwięzłe i łatwiejsze do odczytania, szczególnie gdy mamy wiele warunków do sprawdzenia.

Poniższy kod wykonuje dokładnie tą samą procedurę, ale ze zwiększoną przejrzystością działania.

Linia 1. zmienna znak równości 20. Linia 3. if zmienna otwórz nawias ostrokątny znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest ujemna lub równa 0 cudzysłów zamknij nawias okrągły. Linia 5. elif zmienna otwórz nawias ostrokątny znak równości 10 dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Liczba należy do przedziału otwórz nawias ostrokątny 1 średnik 10 zamknij nawias ostrokątny kropka cudzysłów zamknij nawias okrągły. Linia 7. elif zmienna otwórz nawias ostrokątny znak równości 20 dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Liczba należy do przedziału otwórz nawias ostrokątny 11 średnik 20 zamknij nawias ostrokątny kropka cudzysłów zamknij nawias okrągły. Linia 9. else dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 kropka cudzysłów zamknij nawias okrągły.
Ważne!

Zagnieżdżanie instrukcji warunkowych powinno być stosowane z umiarem, aby uniknąć zbyt skomplikowanego i trudnego do zrozumienia kodu.


Przykład 5

Przykład instrukcji warunkowej w życiu codziennym: jeśli pogoda jest deszczowa, weź parasol. W języku programowania wprowadzamy i sprawdzamy warunek, używając operatora relacjioperator relacjioperatora relacji. Zapoznajmy się z przykładowym warunkiem w środowisku blokowym Scratch.

RWEja9a6Vpimq
Schemat blokowy w Scratch.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

W języku Python zapisujemy to w następujący sposób:

Linia 1. pogoda znak równości cudzysłów deszcz cudzysłów. Linia 2. if pogoda znak równości znak równości cudzysłów deszcz cudzysłów dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów weź parasol cudzysłów zamknij nawias okrągły.

Możesz urchomić ten kod w środowisku IDLEIDLEIDLE.

RD7Avty9qWE4X
Wykonanie kodu w IDLE.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Ważne!

Zauważ, że w środowisku Scratch operator porównania to pojedynczy znak równości (=), a w języku Python to podwójny znak równości (==).


Przykład 6

Chcemy sprawdzić, jak duża jest podana liczba. Sprawdzimy, czy liczba spełnia warunki:

  • liczba >= 100;

  • liczba  <10; 100);

  • liczba  <0, 10).

Przyjmujemy, że sprawdzana liczba to 5.

Jest ona jedynie większa albo równa 0.

O liczbie 200 możemy powiedzieć, że jest większa albo równa 100, większa albo równa 10 i  większa albo równa 0. Natomiast tak naprawdę wystarczyłoby stwierdzenie, że jest  większa albo równa 100, ponieważ oznacza to również, że jest większa od 10 oraz 0.

W zależności od użytej instrukcji warunkowej w języku Python możemy prześledzić dwa różne wyniki działania programu, związane z kolejnością zapisanych warunków oraz konstrukcją instrukcji warunkowej.

Przeanalizujmy zaprezentowany kod.

W poniższym przypadku stosujemy konstrukcję if...elif:

Linia 1. liczba znak równości 50. Linia 2. if liczba zamknij nawias ostrokątny znak równości 100 dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 100 cudzysłów zamknij nawias okrągły. Linia 4. elif liczba zamknij nawias ostrokątny znak równości 10 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100 cudzysłów zamknij nawias okrągły. Linia 6. elif liczba zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10 cudzysłów zamknij nawias okrągły. Linia 9. kratka Efekt działania programu dwukropek. Linia 10. kratka Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100.

Program wypisze wyłącznie jeden komunikat ze względu na zastosowaną konstrukcję instrukcji warunkowej if... elif.  W kodzie sprawdzane są kolejno zapisane warunki, aż do momentu napotkania pierwszego, którego wartość wynosi True. Wówczas wykonywany jest blok instrukcji zapisany po dwukropku i instrukcja kończy swoje działanie bez sprawdzania pozostałych warunków. Zmienna liczba o przypisanej wartości 50 nie jest większa albo równa 100, więc program przechodzi do sprawdzania kolejnego warunku. Zadana wartość zmiennej jest większa albo równa 10, więc instrukcja warunkowa zakończy sprawdzanie warunków po pierwszym przypadku spełnienia warunku.

W kolejnym przykładzie instrukcję if...elif zastępujemy trzema instrukcjami warunkowymi if:

Linia 1. liczba znak równości 50. Linia 2. if liczba zamknij nawias ostrokątny znak równości 100 dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 100 cudzysłów zamknij nawias okrągły. Linia 4. if liczba zamknij nawias ostrokątny znak równości 10 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100 cudzysłów zamknij nawias okrągły. Linia 6. if liczba zamknij nawias ostrokątny znak równości 0 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10 cudzysłów zamknij nawias okrągły. Linia 9. kratka Efekt działania programu dwukropek. Linia 10. kratka Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100. Linia 11. kratka Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10.

Zapoznajmy się z różnicami w działaniu obu programów. W przypadku kilku instrukcji if następujących po sobie wszystkie instrukcje są wykonywane, a każdy warunek jest sprawdzany indywidualnie. W kolejnych instrukcjach sprawdzane są warunki niezależnie od pozostałych bloków instrukcji, co oznacza, że wypisane zostaną dwa komunikaty, ponieważ zmienna liczba równa się 50, czyli jest większa i od 10, i od 0, a więc spełnia warunki zapisane w drugiej i trzeciej instrukcji if.

Zwróć uwagę, że ze względu na odmienne działanie konstrukcji złożonej z trzech niezależnych od siebie instrukcji warunkowych if w powyższym przykładzie błędne stały się wyświetlane komunikaty – liczba 50 jest większa od 0, ale nie jest mniejsza niż 10. Kod nie działa zgodnie z założeniami.

Aby program działał poprawnie bez zmiany treści komunikatów, należy użyć instrukcji warunkowych if, zatem należy poprawić warunki. W tym celu użyjemy słowa kluczowego and pozwalającego łączyć wyrażenia logiczne.

Linia 1. liczba znak równości 50. Linia 2. if liczba zamknij nawias ostrokątny znak równości 100 dwukropek. Linia 3. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 100 cudzysłów zamknij nawias okrągły. Linia 4. if liczba zamknij nawias ostrokątny znak równości 10 and liczba otwórz nawias ostrokątny 100 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100 cudzysłów zamknij nawias okrągły. Linia 6. if liczba zamknij nawias ostrokątny znak równości 0 and liczba otwórz nawias ostrokątny 10 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest większa bądź równa 0 przecinek ale mniejsza niż 10 cudzysłów zamknij nawias okrągły. Linia 9. kratka Efekt działania programu dwukropek. Linia 10. kratka Liczba jest większa bądź równa 10 przecinek ale mniejsza niż 100.

Operator and zwraca wartość True tylko wtedy, gdy wszystkie połączone wyrażenia są prawdziwe. Jeśli którekolwiek z wyrażeń jest fałszywe, cała instrukcja warunkowa zwraca False. Wartość zmiennej liczba równa 50 nadal nie jest większa od 100, dlatego pierwszy komunikat nie zostanie wyświetlony.

Druga instrukcja warunkowa zwróci wartość True, ponieważ 50 jest większe albo równe 10 oraz (and) jest mniejsze od 100. Jak widzimy, oba warunki są spełnione, zatem drugi komunikat zostanie wyświetlony.

W ostatniej instrukcji warunkowej prawdziwy jest wyłącznie pierwszy warunek, ponieważ 50 jest większe bądź równe 0, ale nie jest mniejsze od 10. Zgodnie ze sposobem działania operatora and, jeśli którekolwiek z wyrażeń jest fałszywe, cała instrukcja warunkowa jest fałszywa, a więc jej kod wewnętrzny nie zostanie wykonany.


Przykład 7

Bankomaty wykorzystują różne technologie do przetwarzania transakcji, technologię kryptograficzną do zapewnienia bezpieczeństwa transakcji i technologię sieci komputerowych do komunikacji z centralą banku. Wewnątrz bankomatu znajduje się komputer, którego program musi podjąć wiele decyzji na podstawie dostarczonych informacji, np.:

  • w jakim języku wyświetlać komunikaty,

  • czy włożona karta jest prawidłowa,

  • czy karta nie jest zastrzeżona,

  • czy podaliśmy prawidłowy PIN do karty,

  • czy kwota, którą chcemy wypłacić, jest mniejsza niż saldo konta,

  • czy kwota, którą chcemy wypłacić, jest mniejsza niż limity wypłat jednorazowych lub dziennych,

  • czy kwota, którą chcemy wypłacić, jest możliwa do wypłaty (czy w bankomacie są banknoty),

  • jakimi banknotami wydać kwotę.

Pomińmy trzy pierwsze punkty z listy. By wypłacić środki, zaczynamy od podania numeru PIN. Jeśli będzie poprawny, kolejne warunki będą sprawdzane. Jeśli nie będzie poprawny, działanie programu zostanie przerwane.

Spróbujmy przygotować odpowiednie instrukcje w środowisku Scratch, zakładając, że poprawny PIN to 1234:

RXzAQeYCpPAS3
Schemat blokowy w Scratch.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Zapiszmy odpowiednie instrukcje również w języku Python. Wczytamy PIN z klawiatury funkcją input() i porównamy z poprawnym, używając odpowiedniego operatora relacjioperator relacjioperatora relacji:

Linia 1. podany podkreślnik pin znak równości input otwórz nawias okrągły cudzysłów Proszę podać PIN dwukropek cudzysłów zamknij nawias okrągły. Linia 3. if podany podkreślnik pin znak równości znak równości cudzysłów 1234 cudzysłów dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów PIN prawidłowy kropka cudzysłów zamknij nawias okrągły. Linia 5. else dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Podano BŁĘDNY PIN cudzysłów zamknij nawias okrągły.
Polecenie 1

Sprawdź działanie tego kodu w środowisku IDLEIDLEIDLE.

Przykład takiego wykonania:

R6216Ik7R9ntf
Kod wykonany w IDLE.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Przykład 8

Rozważmy przykład karty bankomatowej, która pozwala na wypłacanie różnych sum pieniędzy w zależności od użytego numeru PIN, np.:

  • dla numeru PIN 1234 maksymalna kwota to 100 zł,

  • dla numeru PIN 2345 maksymalna kwota to 300 zł,

  • dla numeru PIN 3374 maksymalna kwota to 500 zł,

  • dla numeru PIN 1034 maksymalna kwota to 700 zł.

Dla każdego innego numeru PIN należy wypisać informację o błędnym numerze PIN.

W ten sposób sterujemy wykonywaniem programu. Jeśli warunekwarunek logicznywarunek będzie spełniony, wykonamy pewien blok instrukcji. Warunekwarunek logicznyWarunek sprawdzamy do pierwszego spełnionego warunku if lub elif, a jeśli nie będzie spełniony w żadnym z przypadków – wtedy wykonamy blok instrukcji else.

Przykładowy program w  Scratch, który zrealizuje takie założenia:

RIcwIK6XBKq9V
Schemat blokowy w Scratch.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Przykładowy kod w języku Python, który realizuje takie założenia:

Linia 1. podany podkreślnik pin znak równości input otwórz nawias okrągły cudzysłów Proszę podać PIN dwukropek cudzysłów zamknij nawias okrągły. Linia 3. if podany podkreślnik pin znak równości znak równości cudzysłów 1234 cudzysłów dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Możesz wypłacić maksymalnie 100 zł kropka cudzysłów zamknij nawias okrągły. Linia 5. elif podany podkreślnik pin znak równości znak równości cudzysłów 2345 cudzysłów dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Możesz wypłacić maksymalnie 300 zł kropka cudzysłów zamknij nawias okrągły. Linia 7. elif podany podkreślnik pin znak równości znak równości cudzysłów 3374 cudzysłów dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Możesz wypłacić maksymalnie 500 zł kropka cudzysłów zamknij nawias okrągły. Linia 9. elif podany podkreślnik pin znak równości znak równości cudzysłów 1034 cudzysłów dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Możesz wypłacić maksymalnie 700 zł kropka cudzysłów zamknij nawias okrągły. Linia 11. else dwukropek. Linia 12. print otwórz nawias okrągły cudzysłów Błędny PIN kropka cudzysłów zamknij nawias okrągły.

Poprawna jest również inna kolejność warunków elif.

Polecenie 2

Sprawdź działanie tego kodu w środowisku IDLEIDLEIDLE.

Przykład takiego wykonania:

Rltu7w16oFIOP
Wykonanie kodu w IDLE
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Przykład 9

Wróćmy do bankomatu, tym razem ignorując ograniczenia nałożone na PIN. Przedstawmy za pomocą listy kroków algorytm wypłaty pieniędzy z bankomatu:

  1. Pobieramy od użytkownika PIN.

  2. Jeśli podany PIN jest błędny – wypisujemy odpowiedni komunikat i kończymy działanie.

  3. Jeśli PIN jest poprawny, pobieramy od użytkownika kwotę do wypłaty.

  4. Jeśli kwota pobrana od użytkownika w kroku 3 jest mniejsza albo równa dostępnej na koncie użytkownika, przechodzimy do kroku 5. W innym przypadku wypisujemy odpowiedni komunikat i kończymy działanie.

  5. Jeśli kwota pobrana od użytkownika w kroku 3 jest mniejsza albo równa dostępnej w bankomacie, przechodzimy do kroku 6. W innym przypadku wypisujemy odpowiedni komunikat i kończymy działanie.

  6. Jeśli kwota pobrana od użytkownika w kroku 3 jest możliwa do wypłaty dostępnymi banknotami w bankomacie, przechodzimy do kroku 7. W innym przypadku wypisujemy odpowiedni komunikat i kończymy działanie.

  7. Wypłacamy kwotę pobraną od użytkownika w kroku 3 i kończymy działanie.

Listę kroków możemy zapisać za pomocą skryptu w środowisku Scratch. Pamiętajmy, że zmienne zawierające stan naszego konta i ilość pieniędzy w bankomacie to tylko przykłady. Zauważmy, że kolejne bloki sterujące znajdują się wewnątrz innych – zagnieżdżamy je.

R184IyH7Wxfdn
Bloki w środowisku Scratch.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Sprawdźmy teraz, w jaki sposób możemy przygotować kod w języku Python, aby zrealizować taki algorytm:

Linia 1. stan podkreślnik konta znak równości 900. Linia 2. stan podkreślnik bankomatu znak równości 2500. Linia 3. odpowiednie podkreślnik banknoty znak równości True. Linia 5. podany podkreślnik pin znak równości input otwórz nawias okrągły cudzysłów Podaj PIN dwukropek cudzysłów zamknij nawias okrągły. Linia 7. if podany podkreślnik pin znak równości znak równości cudzysłów 1234 cudzysłów dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów PIN prawidłowy kropka cudzysłów zamknij nawias okrągły. Linia 9. kratka PIN prawidłowy przecinek wykonujemy dalsze instrukcje. Linia 10. kwota znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj kwotę do wypłaty dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 11. if stan podkreślnik konta zamknij nawias ostrokątny znak równości kwota dwukropek. Linia 12. kratka Stan konta pozwala wypłacić pieniądze. Linia 13. print otwórz nawias okrągły cudzysłów Masz odpowiednią sumę na koncie kropka cudzysłów zamknij nawias okrągły. Linia 14. if stan podkreślnik bankomatu zamknij nawias ostrokątny znak równości kwota dwukropek. Linia 15. kratka W bankomacie są pieniądze. Linia 16. print otwórz nawias okrągły cudzysłów Bankomat ma odpowiednie środki kropka cudzysłów zamknij nawias okrągły. Linia 17. if odpowiednie podkreślnik banknoty znak równości znak równości True dwukropek. Linia 18. kratka W bankomacie są odpowiednie banknoty. Linia 19. print otwórz nawias okrągły cudzysłów Wypłacamy banknoty z bankomatu kropka cudzysłów zamknij nawias okrągły. Linia 20. else dwukropek. Linia 21. print otwórz nawias okrągły cudzysłów Brak odpowiednich banknotów kropka cudzysłów zamknij nawias okrągły. Linia 22. else dwukropek. Linia 23. print otwórz nawias okrągły cudzysłów Bankomat nie ma wystarczającej kwoty pieniędzy kropka cudzysłów zamknij nawias okrągły. Linia 24. else dwukropek. Linia 25. print otwórz nawias okrągły cudzysłów Nie masz wystarczających środków kropka cudzysłów zamknij nawias okrągły. Linia 26. else dwukropek. Linia 27. print otwórz nawias okrągły cudzysłów Podano BŁĘDNY PIN kropka cudzysłów zamknij nawias okrągły.

W kolejnych krokach sprawdzamy różne warunki.

Uruchom program w środowisku IDLEIDLEIDLE. Pamiętaj, by użyć trybu skryptowego, zapisując program w pliku, np. if_pin_01.py.

R4ldeN9HPxkJK
Wykonanie skryptu w IDLE.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Notatnik

Rtbo7pyT6JiIX
Miejsce na Twoje notatki: (Uzupełnij) .
2

Prezentacja multimedialna

RHpH3okinMCDg

W lewo czy w prawo?

Instrukcje warunkowe w języku Python

RHc4KOJmVWO7d
Źródło: Pixabay, domena publiczna.
RrQOxW0FjssDw

Blok dla instrukcji warunkowej – Scratch

RhWWqF8bEkkFw
Instrukcje w edytorze blokowym.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Linia 1. if czy podkreślnik parzysta znak równości znak równości 0 dwukropek. Linia 2. print otwórz nawias okrągły cudzysłów Liczba jest parzysta cudzysłów zamknij nawias okrągły.
R1YDEY8LFrGNO

Scratch – bloki dla instrukcji warunkowych

Zaprezentujmy bardziej rozbudowany przykład. Zastanów się, jakie jeszcze przykłady wykorzystania instrukcji warunkowych znajdujesz wokół siebie.

jeżeli … to …

1,1
RrRLHjPFuVqos
Rysunek poglądowy – sygnalizator świetlny
Źródło: domena publiczna.
R17NwbM5xl7av
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RvTp2mQstNezt

Środowisko IDLE (język Python) – przykładowe konstrukcje if

W poniższym przykładzie prezentujemy kilka instrukcji warunkowych zapisanych jedna pod drugą.

1,1
R15WboV0Xl3DQ
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Linia 1. liczba znak równości 25. Linia 2. print otwórz nawias okrągły cudzysłów Sprawdzamy warunki dla liczby dwukropek cudzysłów przecinek liczba zamknij nawias okrągły. Linia 4. if liczba procent 2 znak równości znak równości 0 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest parzysta kropka cudzysłów zamknij nawias okrągły. Linia 6. if liczba procent 2 znak równości znak równości 1 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest nieparzysta kropka cudzysłów zamknij nawias okrągły. Linia 8. if liczba zamknij nawias ostrokątny 10 dwukropek. Linia 9. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 10 kropka cudzysłów zamknij nawias okrągły. Linia 10. if liczba zamknij nawias ostrokątny 20 dwukropek. Linia 11. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 kropka cudzysłów zamknij nawias okrągły. Linia 12. if liczba zamknij nawias ostrokątny 30 dwukropek. Linia 13. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 30 kropka cudzysłów zamknij nawias okrągły. Linia 14. if liczba zamknij nawias ostrokątny 0 dwukropek. Linia 15. print otwórz nawias okrągły cudzysłów Liczba jest dodatnia kropka cudzysłów zamknij nawias okrągły. Linia 16. if liczba otwórz nawias ostrokątny 0 dwukropek. Linia 17. print otwórz nawias okrągły cudzysłów Liczba jest ujemna kropka cudzysłów zamknij nawias okrągły. Linia 18. if liczba zamknij nawias ostrokątny 1 dwukropek. Linia 19. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 1 kropka cudzysłów zamknij nawias okrągły.

Uwaga! Do sprawdzenia parzystości liczby naturalnej, w pierwszych dwóch instrukcjach warunkowych, obliczamy jej resztę z dzielenia przez 2. Jeśli wynosi 0, liczba jest parzysta, a jeśli jest różna od zera - liczba jest nieparzysta.

R10uO3uRaubPG

Umieszczenie instrukcji warunkowej

Chcemy napisać program, który sprawdzi i wypisze komunikat, czy wartość zmiennej liczba jest parzysta (ponownie sprawdzamy to, za pomocą obliczania reszty z dzielenia przez 2). Dodatkowo, jeśli warunek parzystości zostanie spełniony, kolejne komunikaty powinny wyświetlić informację, czy liczba jest większa od 10, 15, lub 20.

Przeanalizujmy na dwóch przykładach, jednym działającym poprawnie z powyższymi założeniami, a drugim nie, w jaki sposób zachowuje się program zależnie od tego, jak umieścimy kolejne instrukcje warunkowe.

1,1

Przykład 1

Ponieważ wartość zmiennej wynosi 16, poza informacją, że liczba jest parzysta, tylko drugi i trzeci warunek są spełnione, więc zostaną wyświetlone komunikaty: “Liczba jest większa niż 15” oraz “Liczba jest większa niż 10”.

Linia 1. liczba znak równości 16. Linia 2. czy podkreślnik parzysta znak równości liczba procent 2. Linia 3. if czy podkreślnik parzysta znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest parzysta cudzysłów zamknij nawias okrągły. Linia 5. if liczba zamknij nawias ostrokątny 20 dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 cudzysłów zamknij nawias okrągły. Linia 7. if liczba zamknij nawias ostrokątny 15 dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 15 cudzysłów zamknij nawias okrągły. Linia 9. if liczba zamknij nawias ostrokątny 10 dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 10 cudzysłów zamknij nawias okrągły. Linia 12. kratka Efekt wykonania. Linia 13. kratka Liczba jest parzysta. Linia 14. kratka Liczba jest większa niż 15. Linia 15. kratka Liczba jest większa niż 10.

Dla nieparzystej liczby żaden komunikat nie zostałby wyświetlony, nawet jeśli byłaby ona większa od 10, 15 i 20.

RNxSryFEluKx3
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
R19GlUjY0VM3u
1,1

Przykład 2

W drugim przykładzie instrukcje zostały zagnieżdżone inaczej. Po sprawdzeniu parzystości, jeśli warunek zostanie spełniony, ponownie wyświetli się komunikat, że liczba jest parzysta, jednak wewnątrz tego bloku nie ma już trzech niezależnych od siebie instrukcji if, które wykonają się jedna po drugiej.

Ponieważ wartość zmiennej wynosi 16, wyświetli się wyłącznie komunikat o tym, że liczba jest parzysta.

Linia 1. liczba znak równości 16. Linia 2. czy podkreślnik parzysta znak równości liczba procent 2. Linia 3. if czy podkreślnik parzysta znak równości znak równości 0 dwukropek. Linia 4. print otwórz nawias okrągły cudzysłów Liczba jest parzysta cudzysłów zamknij nawias okrągły. Linia 5. if liczba zamknij nawias ostrokątny 20 dwukropek. Linia 6. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 cudzysłów zamknij nawias okrągły. Linia 7. if liczba zamknij nawias ostrokątny 15 dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 15 cudzysłów zamknij nawias okrągły. Linia 9. if liczba zamknij nawias ostrokątny 10 dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 10 cudzysłów zamknij nawias okrągły. Linia 11. kratka Efekt wykonania. Linia 12. kratka Liczba jest parzysta.

Dla parzystej liczby większej niż 20 zostaną wyświetlone z kolei wszystkie komunikaty.

R19jppp3kUBdj
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
RCdDywfBR4eiX

Środowisko IDLE (język Python) – przykładowa konstrukcja if...elif...elif...

Zastanów się, w jakiej kolejności wykonane zostaną kolejne bloki. Czy wszystkie instrukcje zostaną wykonane?

1,1
RGMA5DjLZ3PlO
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
Linia 1. liczba znak równości 25. Linia 2. print otwórz nawias okrągły cudzysłów Sprawdzamy warunki dla liczby dwukropek cudzysłów przecinek liczba zamknij nawias okrągły. Linia 4. if liczba procent 2 znak równości znak równości 0 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Liczba jest parzysta kropka cudzysłów zamknij nawias okrągły. Linia 6. elif liczba procent 2 znak równości znak równości 1 dwukropek. Linia 7. print otwórz nawias okrągły cudzysłów Liczba jest nieparzysta kropka cudzysłów zamknij nawias okrągły. Linia 8. elif liczba zamknij nawias ostrokątny 10 dwukropek. Linia 9. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 10 kropka cudzysłów zamknij nawias okrągły. Linia 10. elif liczba zamknij nawias ostrokątny 20 dwukropek. Linia 11. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 20 kropka cudzysłów zamknij nawias okrągły. Linia 12. elif liczba zamknij nawias ostrokątny 30 dwukropek. Linia 13. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 30 kropka cudzysłów zamknij nawias okrągły. Linia 14. elif liczba zamknij nawias ostrokątny 0 dwukropek. Linia 15. print otwórz nawias okrągły cudzysłów Liczba jest dodatnia kropka cudzysłów zamknij nawias okrągły. Linia 16. elif liczba otwórz nawias ostrokątny 0 dwukropek. Linia 17. print otwórz nawias okrągły cudzysłów Liczba jest ujemna kropka cudzysłów zamknij nawias okrągły. Linia 18. elif liczba zamknij nawias ostrokątny 1 dwukropek. Linia 19. print otwórz nawias okrągły cudzysłów Liczba jest większa niż 1 kropka cudzysłów zamknij nawias okrągły.

Ważne!

Kiedy program napotka warunek, który jest spełniony, przerywa działanie bloku instrukcji i nie wykonuje już żadnych instrukcji w tym bloku. W konsekwencji po wykonaniu się kodu dla linii 6 (przy założeniu, że badana liczba nie jest parzysta), program nie uruchomi już kolejnych instrukcji elif (poza pierwszą).

R1VOtsntI3Cvd

Zasady wykonywania instrukcji warunkowych


3,1
R16Tg4yX6f4tk
R1EMl3NC1xTeJ
RSfKbb5xODZ1d
RKLl5s9g6UkeW

Operatory relacji

Operator

Opis

<

mniejszy niż

>

większy niż

<=

mniejszy lub równy

>=

większy lub równy

==

równy

!=

nierówny (różny)

Zwróćmy szczególną uwagę na dwa operatory:

<=

mniejszy lub równy

>=

większy lub równy

R1Kb3TlaRLxhm

Zagnieżdżone bloki instrukcji warunkowej

Przykład w środowisku Scratch

RK4g3HHTB8X6u
Instrukcje w edytorze blokowym.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Zapisz zaprezentowany program, używając języka Python.

RZEts9nbqKRiI

Zagnieżdżone bloki instrukcji warunkowej

Przykład w języku Python

Linia 1. from random import randint. Linia 2. liczba znak równości randint otwórz nawias okrągły 3 przecinek 300 zamknij nawias okrągły. Linia 3. czy podkreślnik parzysta znak równości liczba procent 2. Linia 4. if czy podkreślnik parzysta znak równości znak równości 0 dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów To liczba parzysta cudzysłów zamknij nawias okrągły. Linia 6. else dwukropek. Linia 7. if liczba zamknij nawias ostrokątny 150 dwukropek. Linia 8. print otwórz nawias okrągły cudzysłów Liczba w drugiej połówce cudzysłów zamknij nawias okrągły. Linia 9. else dwukropek. Linia 10. print otwórz nawias okrągły cudzysłów Liczba w pierwszej połówce cudzysłów zamknij nawias okrągły.

Uwaga! Funkcja randint(a, b) z modułu random zwraca losową liczbę całkowitą z zakresu <a, b>.

Głośność lektora
Głośność muzyki

Indeks górny Źródło: Adam Jurkiewicz, licencja: CC BY 3.0. Indeks górny koniec

Ważne!

Swoje programy przetestuj w środowisku IDLEIDLEIDLE lub innym środowisku programistycznym języka Python zainstalowanym lokalnie. Pamiętaj, aby przy wczytywaniu danych funkcją input() zadbać o zmianę typu danych na liczbę, np. funkcją int().

Przykład 10
Linia 1. liczba znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj liczbę całkowitą dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły.
Polecenie 3
R12DTrCTsopGG
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Polecenie 4

Dany jest algorytm sprawdzania, która z dwóch liczb naturalnych jest większa. Zapisz go, wykorzystując język Python.

R1cvhnqKr9PSj

Tutaj wklej kod swojego programu (wcześniej przetestuj jego działanie w środowisku IDLE):

R1VPDYWpaww44
2
Polecenie 5

Napisz program sprawdzający, czy liczba podana przez użytkownika jest większa, mniejsza lub równa zero. Pamiętaj o odpowiednich funkcjach wczytywania danych od użytkownika oraz o zmianie typu danych. Zastanów się, jakie instrukcje warunkowe i w jakiej kolejności możesz zastosować.

Tutaj wklej kod swojego programu (wcześniej przetestuj jego działanie w środowisku IDLE):

RLZTMe65mS7ow
3

Zestaw ćwiczeń interaktywnych

1
Pokaż ćwiczenia:
R1D9nmAhrwpvo1
Ćwiczenie 1
Wskaż, która instrukcja przypisuje zmiennej imie wartość Ania. Możliwe odpowiedzi: 1. imie = "Ania", 2. imie = Ania, 3. imie == "Ania", 4. "imie" = "Ania"
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RogwUuDZ3PYuS1
Ćwiczenie 2
Uzupełnij zdanie. W językach programowania używamy 1. procedury, 2. warunków logicznych, 3. instrukcji warunkowych, 4. bloki kodu, 5. rozgałęzień algorytmów, 6. funkcji by sterować programem, a więc wykonywać pewne 1. procedury, 2. warunków logicznych, 3. instrukcji warunkowych, 4. bloki kodu, 5. rozgałęzień algorytmów, 6. funkcji dla specyficznych 1. procedury, 2. warunków logicznych, 3. instrukcji warunkowych, 4. bloki kodu, 5. rozgałęzień algorytmów, 6. funkcji.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RzrP0q1886iC8
Ćwiczenie 3
Przeanalizuj kod programu. Program powinien wygenerować w sposób losowy wiek, a następnie wypisać wylosowaną liczbę oraz informację o możliwości odebrania prawa jazdy kategorii B. Wskaż, którym fragmentem kodu można naprawić jego działanie.
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
RBXEKYPtNYYdf2
Ćwiczenie 4
Odpowiedz na pytania i odczytaj ukryte hasło
RoiLJJqVp38C0
Ćwiczenie 5
Wskaż, który fragment kodu zawierający instrukcję warunkową jest najodpowiedniejszy do rozwiązania poniższego problemu:
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.
3
Ćwiczenie 6
R181T6Uwegv9P
Wyjaśnij, czym jest instrukcja warunkowa. (Uzupełnij).
211
Ćwiczenie 7

Napisz program, który pobierze z klawiatury wiek użytkownika (liczba naturalna) i na tej podstawie określi, czy może on głosować w wyborach (w wyborach głosować może obywatel, który ma 18 lat). Program powinien następnie wyświetlić odpowiedni komunikat (zgodnie z przykładem).

RPfUoTJe0eYps
Wynik działania programu w IDLE 
Źródło: Adam Jurkiewicz, licencja: CC BY 3.0.

Ćwiczenie możesz również wykonać w poniższej testerce w kilku etapach. Zamiast pobierania z klawiatury wieku użytkownika, na początku zdefiniujesz odpowiednie zmienne.

R2p1Ox5kQdZc61
311
Ćwiczenie 8

Zapisz funkcję, która zwróci informację o różnicy pomiędzy dwoma podanymi liczbami całkowitymi, odejmując od większej liczby mniejszą. Kolejność odejmowania nie ma znaczenia, jeśli liczby są równe.

Specyfikacja problemu:

Dane wejściowe:

  • liczba_1 – liczba całkowita

  • liczba_2 – liczba całkowita

Wyniki:

  • różnica między liczbami całkowitymi

Przykład:

Linia 1. oblicz podkreślnik roznice otwórz nawias okrągły minus 10 przecinek minus 4 zamknij nawias okrągły. Linia 2. kratka 6. Linia 3. oblicz podkreślnik roznice otwórz nawias okrągły 10 przecinek 4 zamknij nawias okrągły. Linia 4. kratka 7. Linia 5. oblicz podkreślnik roznice otwórz nawias okrągły minus 10 przecinek 4 zamknij nawias okrągły. Linia 6. kratka 14. Linia 7. oblicz podkreślnik roznice otwórz nawias okrągły 5 przecinek 3 zamknij nawias okrągły. Linia 8. kratka 2. Linia 9. oblicz podkreślnik roznice otwórz nawias okrągły 5 przecinek 5 zamknij nawias okrągły. Linia 10. kratka 0.

Ćwiczenie wykonaj w testerce.

R1c8oV3RvTBjV1
4

Słownik

blok instrukcji
blok instrukcji

wydzielona grupa instrukcji przyporządkowana do nadrzędnego elementu

IDLE
IDLE

ang. Integrated Development and Learning Environment; środowisko do zapisywania i uruchamiania programów napisanych w języku Python

Operator relacji
Operator relacji

operator, który porównuje dwa wyrażenia lub wartości i zwraca wartość logiczną prawda (True) albo fałsz (False)

warunek logiczny
warunek logiczny

wyrażenie, które przyjmuje wartość logiczną prawda (True) lub fałsz (False); w języku Python odpowiadają im wartości liczbowe 1 oraz 0

sprawdzenie parzystości
sprawdzenie parzystości

sprawdzenie, czy liczba jest parzysta, czyli czy reszta z dzielenia przez 2 wynosi 0

5

Bibliografia

  • Dokumentacja języka Python, docs.python.org, dostęp 12.03.2024.

  • Jurkiewicz A., Python 3 – Projekty dla początkujących i pasjonatów, wyd. Helion, Gliwice 2021.

  • Łos K., Python dla nastolatków. Projekty graficzne z Python Turtle, wyd. Helion, Gliwice 2022.

  • Platforma OSE IT‑Szkoła, Programowanie w Pythonie z Klubem Młodego Programisty, it‑szkola.edu.pl, dostęp 12.03.2024.

  • Sysło M.M., Algorytmy, wyd. Helion, Gliwice 2016.