{"id":461,"date":"2021-10-17T14:25:41","date_gmt":"2021-10-17T12:25:41","guid":{"rendered":"https:\/\/piotrgabriel.pl\/wiki\/?p=461"},"modified":"2021-10-18T18:50:41","modified_gmt":"2021-10-18T16:50:41","slug":"if-w-pythonie-czyli-wstep-do-testow-warunkowych","status":"publish","type":"post","link":"https:\/\/piotrgabriel.pl\/wiki\/if-w-pythonie-czyli-wstep-do-testow-warunkowych\/","title":{"rendered":"IF w Pythonie, czyli wst\u0119p do test\u00f3w warunkowych"},"content":{"rendered":"<p>Instrukcja warunkowa IF, zwana inaczej poleceniem IF w Pythonie nie r\u00f3\u017cni si\u0119 od tych wyst\u0119puj\u0105cych w pozosta\u0142ych j\u0119zykach. To znaczy r\u00f3\u017cnice wyst\u0119puj\u0105, cho\u0107by w zapisie sk\u0142adni, jednak idea dzia\u0142ania instrukcji warunkowej IF jest taka sama.<!--more--><\/p>\n<h2>Sk\u0142adnia polecenia IF w Pythonie<\/h2>\n<p><code>if test_warunkowy:<\/code><\/p>\n<p><code>\u00a0 \u00a0 dowolna akcja<\/code><\/p>\n<p>Prosty przyk\u0142ad, gdzie sprawdzamy warunek, czy klient zam\u00f3wi\u0142 salami na pizz\u0119. Zmienna zamowioneSkladniki to salami, instrukcja IF sprawdza, poprzez == czy dane zmiennej s\u0105 r\u00f3wne stringowi salami<\/p>\n<div>\n<div><code>zamowioneSkladniki = 'salami'<\/code><\/div>\n<div><code>if zamowioneSkladniki == 'salami':<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Klient zam\u00f3wi\u0142 salami na pizz\u0119\")<\/code><\/div>\n<div><\/div>\n<div>Rozszerzymy teraz nasz program o to, by obs\u0142u\u017cy\u0142 przykadek, w kt\u00f3rym zmienna zamowioneSkladniki b\u0119dzie zawiera\u0142a na przyk\u0142ad szynk\u0119 parme\u0144sk\u0105:<\/div>\n<div>\n<div>\n<div><code>zamowioneSkladniki = 'Szynka Parme\u0144ska'<\/code><\/div>\n<div><code>if zamowioneSkladniki == 'salami':<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Klient zam\u00f3wi\u0142 salami na pizz\u0119\")<\/code><\/div>\n<div><code>elif zamowioneSkladniki !='salami':<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Klient nie zam\u00f3wi\u0142 salami a \"+zamowioneSkladniki)<\/code><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div>W powy\u017cszym przyk\u0142adzie obs\u0142u\u017cyli\u015bmy dwa przypadki, gdzie wynik mo\u017ce by\u0107 albo TRUE albo FALSE i tak dzia\u0142aj\u0105 instrukcje warunkowe IF.<\/div>\n<div><\/div>\n<h2>IF sprawdza czy nasz warunek boolowski jest TRUE lub FALSE<\/h2>\n<p>Na przyk\u0142adzie ni\u017cej, zastosowali\u015bmy 3 operatory matematyczne, por\u00f3wnania, mniejszo\u015bci i wi\u0119kszo\u015bci. Akcja zawarta w instrukcji IF lub else if (ELIF) zostanie wykonana dopiero w tedy, kiedy warunek b\u0119dzie TRUE, czyli b\u0119dzie spe\u0142niony.<\/p>\n<div>\n<div>\n<div><code>ileMaszLat = 28<\/code><\/div>\n<div><code>if ileMaszLat == 37:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"zgad\u0142e\u015b! Autor posta ma 37 lat\")<\/code><\/div>\n<div><code>elif ileMaszLat &lt; 37:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Nie zgad\u0142e\u015b, podany wiek jest zbyt ma\u0142y\")<\/code><\/div>\n<div><code>elif ileMaszLat &gt; 37:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Nie, za du\u017co lat poda\u0142e\u015b\")<\/code><\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<h2>U\u017cywamy s\u0142owa kluczowego AND i wykorzystujemy \u0142a\u0144cuch IF-ELIF-ELSE<\/h2>\n<p>Przyk\u0142ad ni\u017cej wykorzystuje IF, ELIF (od else if) oraz ELSE (czyli wykonaj je\u015bli \u017caden z warunk\u00f3w nie b\u0119dzie TRUE.<\/p>\n<p>Na pocz\u0105tku w zmiennej szukanaLiczba podajemy warto\u015b\u0107. Warunki sprawdzaj\u0105, czy podana warto\u015b\u0107 jest z przedzia\u0142\u00f3w okre\u015blonych jako warunki, np <code>szukanaLiczba &lt; 20 AND szukanaLiczba &gt;=10\u00a0<\/code><\/p>\n<p>Przeanalizuj poni\u017cszy kod dok\u0142adniej:<\/p>\n<div>\n<div>\n<div><code>szukanaLiczba = 8<\/code><\/div>\n<div><code>if szukanaLiczba == 20:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Szukana liczba jest r\u00f3wna liczbie 20\")<\/code><\/div>\n<div><code>elif szukanaLiczba &lt; 20 and szukanaLiczba \u00a0&gt;= 10:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Twoja liczba jest mniejsza ni\u017c 20 i wi\u0119ksza lub r\u00f3wna 10\")<\/code><\/div>\n<div><code>elif szukanaLiczba &lt; 10 and szukanaLiczba &gt;= 5:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Twoja liczba jest mniejsza od 10 i wi\u0119ksza lub r\u00f3wna 5\")<\/code><\/div>\n<div><code>else:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Twoja liczba nie jest wi\u0119ksza r\u00f3wna 10 i mniejsza ni\u017c 20 oraz nie jest wi\u0119ksza lub r\u00f3wna 5 i mniejsza od 10\")<\/code><\/div>\n<\/div>\n<\/div>\n<h2>U\u017cywamy s\u0142owa kluczowego OR<\/h2>\n<p>Podobnie jak w przypadku s\u0142owa kluczowego <strong>and<\/strong> stosujemy s\u0142owo <strong>or<\/strong>. Przeanalizuj poni\u017cszy przyk\u0142ad:<\/p>\n<div>\n<div>\n<div><code>szukanaLiczba = 21<\/code><\/div>\n<div><code>if szukanaLiczba &lt; 20 or szukanaLiczba &gt; 30:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Szukana liczba jest mniejsza od 20 lub wi\u0119ksza od 30\")<\/code><\/div>\n<div><code>else:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"warunek nie zosta\u0142 spe\u0142niony.\")<\/code><\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<h2>Sprawdzamy instrukcj\u0119 IF\u00a0 na listach<\/h2>\n<p>W artykule o <a href=\"https:\/\/piotrgabriel.pl\/wiki\/python-listy-kopiowanie-i-dodawanie-elementu\/\">listach w Pythonie<\/a>\u00a0 dowiedzieli\u015bmy si\u0119 czym s\u0105 listy i w jaki spos\u00f3b je tworzy\u0107 oraz modyfikowa\u0107. Wykorzystajmy wi\u0119c t\u0119 wiedz\u0119 by szerzej podej\u015b\u0107 do tematu instrukcji warunkowych IF.<\/p>\n<p>Um\u00f3wmy si\u0119, \u017ce jeste\u015bmy administratorem serwisu internetowego i chcemy aby ka\u017cdy u\u017cytkownik mia\u0142 unikalny nick. Sprawd\u017amy wi\u0119c czy podany nick znajduje si\u0119 na naszej li\u015bcie:<\/p>\n<div>\n<div><code>userNick = ['zosia','staszek','lucek','marian','zbyszek','halina']<\/code><\/div>\n<div><code>sprawdzNick = 'marian'<\/code><\/div>\n<div><code>if sprawdzNick not in userNick:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Poda\u0142e\u015b nick \"+sprawdzNick+\". Mo\u017cesz si\u0119 zarejestrowa\u0107\")<\/code><\/div>\n<div><code>elif sprawdzNick in userNick:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(\"Nick ***\"+sprawdzNick+\"*** znajduje si\u0119 w naszej bazie. \\nWybierz inny!\")<\/code><\/div>\n<\/div>\n<div><\/div>\n<div>W obs\u0142udze naszych komunikat\u00f3w zastosowali\u015bmy metod\u0119 <strong>title()<\/strong>, dzi\u0119ki kt\u00f3rej zamienili\u015bmy pierwsz\u0105 liter\u0119 obs\u0142ugiwanego w programie nicku na wielk\u0105.<\/div>\n<div><\/div>\n<div>w podobny spos\u00f3b mo\u017cemy traktowa\u0107 string, kt\u00f3ry chcemy por\u00f3wnywa\u0107, sprowadzaj\u0105c go zawsze do ma\u0142ych znak\u00f3w, s\u0142u\u017cy temu metoda <strong>lower()<\/strong>.<\/div>\n<div><\/div>\n<h2>Zastosowanie break w instrukcji IF<\/h2>\n<p>Napiszmy program, sprawdzaj\u0105cy, czy na li\u015bcie login\u00f3w w naszym serwisie internetowym znajduje si\u0119 ten, kt\u00f3ry wpisa\u0142 u\u017cytkownik &#8211; tutaj w zmiennej twojLogin:<\/p>\n<div>\n<div>\n<div><code>users = ['admin','bot','operator','alek','maja']<\/code><\/div>\n<div><code>twojLogin = 'bot'<\/code><\/div>\n<div><code>if twojLogin in users:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(f\"Witaj {twojLogin}\")<\/code><\/div>\n<div><code>else:<\/code><\/div>\n<div><code>\u00a0 \u00a0 print(f\"Nie ma u\u017cytkownika o loginie {twojLogin}\")<\/code><\/div>\n<\/div>\n<\/div>\n<div>\n<div>\n<div><code><\/code><\/div>\n<\/div>\n<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Instrukcja warunkowa IF, zwana inaczej poleceniem IF w Pythonie nie r\u00f3\u017cni si\u0119 od tych wyst\u0119puj\u0105cych w pozosta\u0142ych j\u0119zykach. To znaczy r\u00f3\u017cnice wyst\u0119puj\u0105, cho\u0107by w zapisie sk\u0142adni, jednak idea dzia\u0142ania instrukcji warunkowej IF jest taka sama.<\/p>\n","protected":false},"author":1,"featured_media":462,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27],"tags":[28,40,34],"class_list":["post-461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-python","tag-python-cwiczenia","tag-python-podstawy"],"_links":{"self":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/comments?post=461"}],"version-history":[{"count":0,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/461\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media\/462"}],"wp:attachment":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media?parent=461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/categories?post=461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/tags?post=461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}