<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FWykonanie_warunkowe</id>
	<title>TI/Wykonanie warunkowe - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FWykonanie_warunkowe"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Wykonanie_warunkowe&amp;action=history"/>
	<updated>2026-04-23T20:55:59Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Wykonanie_warunkowe&amp;diff=4008&amp;oldid=prev</id>
		<title>Durka: /* Zadanie */</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Wykonanie_warunkowe&amp;diff=4008&amp;oldid=prev"/>
		<updated>2015-09-11T14:52:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Zadanie&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 14:52, 11 wrz 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l108&quot; &gt;Linia 108:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 108:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wywołujemy  funkcję &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; przekazując jej jako argument napis, który zostaje wypisany na ekran jako zachęta dla użytkownika. Po tym jak użytkownik wpisze coś i naciśnie &amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;, funkcja &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; zwraca to, co zostało wpisane, jako napis. Przetwarzamy go na liczbę całkowitą za pomocą &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;, a następnie zapisujemy w zmiennej. Podsumowując:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wywołujemy  funkcję &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; przekazując jej jako argument napis, który zostaje wypisany na ekran jako zachęta dla użytkownika. Po tym jak użytkownik wpisze coś i naciśnie &amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;, funkcja &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; zwraca to, co zostało wpisane, jako napis. Przetwarzamy go na liczbę całkowitą za pomocą &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;, a następnie zapisujemy w zmiennej. Podsumowując:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang = python&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang = python&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;licba_wprowadzona &lt;/del&gt;=  int(raw_input('Podaj liczbę: ' ) )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;liczba_wprowadzona &lt;/ins&gt;=  int(raw_input('Podaj liczbę: ' ) )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Durka</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Wykonanie_warunkowe&amp;diff=1570&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot; ==Wprowadzenie== W programach, które widzieliśmy dotychczas, zawsze występowały ciągi wyrażeń, które Python wiernie odtwarzał w podanej kolejności. Co zrobić...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Wykonanie_warunkowe&amp;diff=1570&amp;oldid=prev"/>
		<updated>2015-05-22T19:32:17Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot; ==Wprowadzenie== W programach, które widzieliśmy dotychczas, zawsze występowały ciągi wyrażeń, które Python wiernie odtwarzał w podanej kolejności. Co zrobić...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Wprowadzenie==&lt;br /&gt;
W programach, które widzieliśmy dotychczas, zawsze&lt;br /&gt;
występowały ciągi wyrażeń, które Python wiernie odtwarzał w podanej&lt;br /&gt;
kolejności. Co zrobić, gdy chcemy zmienić tę kolejność? Na przykład&lt;br /&gt;
chcemy, żeby program podejmował decyzje i robił różne rzeczy, zależnie&lt;br /&gt;
od sytuacji, jak na przykład wypisywał „Dzień dobry” albo „Dobry&lt;br /&gt;
wieczór” zależnie od pory dnia.&lt;br /&gt;
&lt;br /&gt;
Uzyskuje się to kontrolując przepływ programu&lt;br /&gt;
za pomocą wyrażeń, które powodują przeskok i wykonanie instrukcji&lt;br /&gt;
w innej kolejności niż ta, w której są napisane. Najważniejsze z takich wyrażeń to&lt;br /&gt;
&amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; (wykonanie warunkowe, przedstawione poniżej) oraz&lt;br /&gt;
&amp;lt;tt&amp;gt;for&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;while&amp;lt;/tt&amp;gt; (wykonanie w pętli, przedstawione w następnym rozdziale).&lt;br /&gt;
&lt;br /&gt;
==Konstrukcja if==&lt;br /&gt;
===Składnia ===&lt;br /&gt;
Konstrukcja &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; jest używana do wyboru jednego z dwóch bloków w zależności od pewnego warunku.&lt;br /&gt;
Poniżej przedstawiamy  składnię tej konstrukcji najpierw w dwóch szczególnych, ale często występujących przypadkac, a na końcu w pełnej wersji. Proszę zwrócić uwagę na dwukropki i wcięcia. Fragment kodu o wyróżniony jednakowym wcięciem nazywamy blokiem.&lt;br /&gt;
* Przypadek I: wykonanie warunkowe bloku kodu:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
if warunek:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli warunek jest prawdziwy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Przypadek II: wykonanie warunkowe jednego z dwóch bloków kodu:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
if warunek:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli warunek jest prawdziwy&lt;br /&gt;
else:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli warunek jest fałszywy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* Przypadek ogólny: kaskada warunków&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
if warunek1:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli warunek1 jest prawdziwy&lt;br /&gt;
elif warunek2:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli warunek2 jest prawdziwy&lt;br /&gt;
else:&lt;br /&gt;
    blok kodu,&lt;br /&gt;
    który ma być wykonany&lt;br /&gt;
    jeśli każdy z powyższych warunków jest fałszywy&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Przykład 1 ===&lt;br /&gt;
Chcemy napisać program realizujący następujący algorytm:&lt;br /&gt;
# ustal zmienną &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt; na pewną wartość np. 11&lt;br /&gt;
# Jeśli temperatura jest dodatnia wypisz komunikat: &amp;quot;jest ciepło!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Algorytm ten można w pythonie zaimplementować następująco:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
temperatura = 11&lt;br /&gt;
&lt;br /&gt;
if temperatura &amp;gt; 0:&lt;br /&gt;
   print &amp;quot;jest ciepło!&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Python wykonuje wyrażenie będące warunkiem (&amp;lt;tt&amp;gt;temperatura &amp;gt; 0&amp;lt;/tt&amp;gt;).&lt;br /&gt;
Ponieważ warunek jest prawdziwy, uruchamiamy blok&lt;br /&gt;
operacji bezpośrednio pod &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Przykład 2 ===&lt;br /&gt;
Zmodyfikujmy nieco nasz algorytm:&lt;br /&gt;
# ustal zmienną &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt; na pewną wartość np. 11&lt;br /&gt;
# Jeśli temperatura jest dodatnia wypisz komunikat: &amp;quot;jest ciepło!&amp;quot;&lt;br /&gt;
# W przeciwnym razie wypisz komunikat: &amp;quot;uwaga, przymrozek!&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Algorytm ten można zaimplementować w następujący sposób:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
temperatura = 11&lt;br /&gt;
&lt;br /&gt;
if temperatura &amp;gt; 0:&lt;br /&gt;
   print &amp;quot;jest ciepło!&amp;quot;&lt;br /&gt;
else:&lt;br /&gt;
   print &amp;quot;uwaga, przymrozek!&amp;quot;  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Program został wzbogacony o nowy blok poprzedzony instrukcją &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;. Jeśli zmienilibyśmy wartość przypisaną do zmiennej &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt;&lt;br /&gt;
i warunek był fałszywy, wykonałby się właśnie ten blok (pod &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Sekcja &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; jest opcjonalna &amp;amp;mdash; jeśli jej nie ma,&lt;br /&gt;
a warunek jest fałszywy, to cała konstrukcja &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; nie powoduje wykonania żadnych instrukcji (poza wykonaniem warunku).&lt;br /&gt;
=== Zadanie   ===&lt;br /&gt;
Proszę napisać program realizujący algorytm:&lt;br /&gt;
# poproś użytkownika po podanie temperatury &lt;br /&gt;
# przypisz podaną przez  użytkownika wartość do  zmiennej &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt; &lt;br /&gt;
# Jeśli temperatura jest powyżej 30 wypisz komunikat: &amp;quot;upał&amp;quot;&lt;br /&gt;
# jeśli jest powyżej 15 dodatnia wypisz komunikat: &amp;quot;jest ciepło!&amp;quot;&lt;br /&gt;
# W przeciwnym razie wypisz komunikat: &amp;quot;uwaga, chłodno!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Uwaga 1: proszę przeanalizować sekwencję warunków&lt;br /&gt;
&lt;br /&gt;
Uwaga: W tym i kolejnym zadaniu przydać się może funkcja &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt;. Dla przypomnieinia:  ta funkcja wczytuje jedną linijkę &amp;amp;bdquo;z klawiatury&amp;amp;ldquo;&lt;br /&gt;
Wywołujemy  funkcję &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; przekazując jej jako argument napis, który zostaje wypisany na ekran jako zachęta dla użytkownika. Po tym jak użytkownik wpisze coś i naciśnie &amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;, funkcja &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; zwraca to, co zostało wpisane, jako napis. Przetwarzamy go na liczbę całkowitą za pomocą &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;, a następnie zapisujemy w zmiennej. Podsumowując:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
licba_wprowadzona =  int(raw_input('Podaj liczbę: ' ) )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadanie: Zagadka ===&lt;br /&gt;
Algorytm zagadki jest następujący:&lt;br /&gt;
# przypisz do zmiennej &amp;lt;tt&amp;gt;liczba&amp;lt;/tt&amp;gt; wartość 23&lt;br /&gt;
# pobierz od użytkownika liczbę całkowitą i przypisz ja do zmiennej &amp;lt;tt&amp;gt;strzal&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Jeśli wartości zmiennych &amp;lt;tt&amp;gt;liczba&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;strzal&amp;lt;/tt&amp;gt; są równe to wypisz gratulacje&lt;br /&gt;
# jeśli wartość  zmiennej &amp;lt;tt&amp;gt;liczba&amp;lt;/tt&amp;gt; jest większa niż wartość zmiennej &amp;lt;tt&amp;gt;strzal&amp;lt;/tt&amp;gt; to wypisz informację  &amp;quot;Nie, szukana liczba jest większa od podanej&amp;quot;&lt;br /&gt;
# jeśli wartość  zmiennej &amp;lt;tt&amp;gt;liczba&amp;lt;/tt&amp;gt; jest mniejsza niż wartość zmiennej &amp;lt;tt&amp;gt;strzal&amp;lt;/tt&amp;gt; to wypisz informację  &amp;quot;Nie, szukana liczba jest mniejsza od podanej&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zwróćmy uwagę na fakt, że jeżeli pierwszy i drugi warunek nie jest spełniony (jest fałszywy) to  warunek ostatni jest jedyną możliwością i nie musimy go już sprawdzać.&lt;br /&gt;
 Proszę zaimplementować powyższy algorytm.&lt;br /&gt;
&lt;br /&gt;
Możliwe rozwiązanie (ukryte): &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{Solution|title=Przykład|text=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt; #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: if.py&lt;br /&gt;
&lt;br /&gt;
liczba = 23&lt;br /&gt;
strzal = int(raw_input('Wpisz liczbę całkowitą: '))&lt;br /&gt;
if strzal == liczba:&lt;br /&gt;
    print 'Gratulacje, zgadłeś ją!' # Nowy blok zaczyna się tutaj&lt;br /&gt;
    print '(Ale nic nie wygrałeś.)' # a tutaj się kończy.&lt;br /&gt;
elif strzal &amp;lt; liczba:&lt;br /&gt;
    print 'Nie, szukana liczba jest większa od podanej.'&lt;br /&gt;
    # Inny blok&lt;br /&gt;
    # Możesz w tym bloku zrobić co zechcesz...&lt;br /&gt;
else:&lt;br /&gt;
    print 'Nie, szukana liczba jest mniejsza od podanej.'&lt;br /&gt;
    # Musi zajść sytuacja strzal &amp;gt; liczba, aby tu dotrzeć.&lt;br /&gt;
print 'Koniec programu.'&lt;br /&gt;
# To ostatnie polecenie zostanie zawsze wykonane, niezależnie od&lt;br /&gt;
# poprzedniego if.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat trzech kolejnych wykonań programu&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
$ python if.py&lt;br /&gt;
Wpisz liczbę całkowitą: 50&lt;br /&gt;
Nie, szukana liczba jest mniejsza od podanej.&lt;br /&gt;
Koniec programu.&lt;br /&gt;
&lt;br /&gt;
$ python if.py&lt;br /&gt;
Wpisz liczbę całkowitą: 22&lt;br /&gt;
Nie, szukana liczba jest większa od podanej.&lt;br /&gt;
Koniec programu.&lt;br /&gt;
&lt;br /&gt;
$ python if.py&lt;br /&gt;
Wpisz liczbę całkowitą: 23&lt;br /&gt;
Gratulacje, zgadłeś ją!&lt;br /&gt;
(Ale nic nie wygrałeś.)&lt;br /&gt;
Koniec programu.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Jak to działa?&lt;br /&gt;
W tym programie użytkownik zgaduje liczbę, a jego&lt;br /&gt;
strzał jest porównywany z wartością, którą podaliśmy. Ustawiamy&lt;br /&gt;
zmienną &amp;lt;tt&amp;gt;liczba&amp;lt;/tt&amp;gt; na dowolną liczbę całkowitą,&lt;br /&gt;
powiedzmy 23. Następnie prosimy użytkownika o podanie jego strzału&lt;br /&gt;
używając funkcji &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt;. Funkcje są częściami programu, które wykonują&lt;br /&gt;
jakąś operację, np. ta funkcja wczytuje jedną linijkę &amp;amp;bdquo;z klawiatury&amp;amp;ldquo;&lt;br /&gt;
Dowiesz się więcej o funkcjach w następnym rozdziale.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy funkcję &amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; przekazując jej napis, który zostaje wypisany na ekran jako zachęta dla użytkownika. Po tym jak użytkownik wpisze coś i naciśnie &amp;lt;tt&amp;gt;Enter&amp;lt;/tt&amp;gt;, funkcja&lt;br /&gt;
&amp;lt;tt&amp;gt;raw_input&amp;lt;/tt&amp;gt; zwraca to, co zostało wpisane, jako napis.&lt;br /&gt;
Przetwarzamy go na liczbę całkowitą za pomocą&lt;br /&gt;
&amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt;, a następnie zapisujemy w zmiennej&lt;br /&gt;
&amp;lt;tt&amp;gt;strzal&amp;lt;/tt&amp;gt;. Właściwie &amp;lt;tt&amp;gt;int&amp;lt;/tt&amp;gt; jest klasą, ale w tej&lt;br /&gt;
chwili jedynie musisz wiedzieć, że dzięki takiemu wyrażeniu możesz zmienić ciąg&lt;br /&gt;
znaków na liczbę całkowitą (zakładając, że ten ciąg jest liczbą&lt;br /&gt;
całkowitą zapisaną jako tekst).&lt;br /&gt;
&lt;br /&gt;
W kolejnym kroku porównujemy strzał użytkownika z wybrana przez nas&lt;br /&gt;
liczbą. Jeżeli są równe, wypisujemy komunikat o sukcesie. Zauważ, że&lt;br /&gt;
używamy wcięć, aby pokazać Pythonowi, co należy do którego bloku. &lt;br /&gt;
&lt;br /&gt;
Zauważ też dwukropek na końcu linijki ze słowem&lt;br /&gt;
&amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;. Nowy blok może zacząć się tylko po linijce zakończonej dwukropkiem (ale nie każdą linijkę można dwukropkiem zakończyć).&lt;br /&gt;
&lt;br /&gt;
Później sprawdzamy, czy strzał jest mniejszy od naszej liczby. Jeżeli&lt;br /&gt;
tak, to sugerujemy użytkownikowi, że powinien podać większą&lt;br /&gt;
liczbę. Użyliśmy tutaj sekcji &amp;lt;tt&amp;gt;elif&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Wyrażenia &amp;lt;tt&amp;gt;elif&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; również muszą mieć na&lt;br /&gt;
końcu swojej linijki dwukropek, a następnie własny blok poleceń&lt;br /&gt;
(oczywiście z właściwymi wcięciami).&lt;br /&gt;
&lt;br /&gt;
W bloku &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; można umieścić kolejny blok &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; ile razy chcesz. Konstrukcja taka nazywa się ''zagnieżdżone if''.&lt;br /&gt;
&lt;br /&gt;
Pamiętaj, że sekcje &amp;lt;tt&amp;gt;elif&amp;lt;/tt&amp;gt; oraz &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt; nie są&lt;br /&gt;
konieczne. Minimalnym prawidłowym wyrażeniem jest na przykład:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt; &lt;br /&gt;
if True:&lt;br /&gt;
    print 'Tak, to prawda' &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdy Python skończył pracę z blokiem &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; wraz z&lt;br /&gt;
towarzyszącymi &amp;lt;tt&amp;gt;elif&amp;lt;/tt&amp;gt; oraz &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;, przeszedł do&lt;br /&gt;
kolejnego polecenia zawartego w tym samym bloku, co &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt;. W&lt;br /&gt;
naszym przykładzie, kolejnym poleceniem jest &amp;lt;tt&amp;gt;print 'Koniec&lt;br /&gt;
programu.'&amp;lt;/tt&amp;gt;. Po nim Python widzi koniec programu, więc kończy&lt;br /&gt;
swoje działanie.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Wartości logiczne==&lt;br /&gt;
Jak wiadomo, logika rządzi się swoimi prawami. Pozwalają one na ścisłe wyliczanie wartości logicznej zdań &amp;amp;mdash; czyli po prostu określenie, czy zdanie złożone z prostszych zdań jest prawdziwe czy też fałszywe.&lt;br /&gt;
Ponieważ występują tylko dwie wartości i można dla nich pisać równania, to zasady logiki nazywamy algebrą dwuwartościową, lub częściej [[wikipl:Algebra Boole'a|algebrą Boole'a]], od nazwiska osoby która pierwsza sformalizowała ten rachunek.&lt;br /&gt;
&lt;br /&gt;
Dwie wartości, prawdę i fałsz, oznaczamy często jako 1 i 0.&lt;br /&gt;
W Pythonie jako wartość oznaczającą prawdę  można użyć liczby 1 albo specjalnego obiektu &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt;, natomiast fałsz &amp;amp;mdash; liczby 0 lub  obiektu &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;. Te specjalne obiekty nazywane są po angielsku ''booleans'', co należy rozumieć jako ''wartości Boole'a''. Nie są niezbędne i zostały wprowadzone po to, by podkreślić kiedy używamy algebry dwuwartościowej, a kiedy zwykłej.&lt;br /&gt;
&lt;br /&gt;
===Operacje logiczne===&lt;br /&gt;
====Koniunkcja====&lt;br /&gt;
Jeśli mamy dwa zdania ''a'' oraz ''b'', ich koniunkcją nazywamy wyrażenie, które jest prawdziwe gdy obywa zdania są prawdziwe. W matematyce oznacza się to przez &amp;lt;math&amp;gt;a \wedge b&amp;lt;/math&amp;gt;. W Pythonie operatorem koniunkcji jest &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Możemy wypisać działanie operatora na każdą możliwą parę wartości logicznych:&lt;br /&gt;
:{| border='1' class='wikitable'&lt;br /&gt;
|+&lt;br /&gt;
! colspan=2 | wartości zdań&lt;br /&gt;
! wartość ich koniunkcji&lt;br /&gt;
|-&lt;br /&gt;
! align=center |&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; || align=center |&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;|| align=center |   &amp;lt;tt&amp;gt;a and b&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=center | True || align=center | True || align=center | True&lt;br /&gt;
|-&lt;br /&gt;
| align=center | True || align=center | False || align=center | False&lt;br /&gt;
|-&lt;br /&gt;
| align=center | False || align=center | True || align=center | False&lt;br /&gt;
|-&lt;br /&gt;
| align=center | False || align=center | False || align=center | False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Koniunkcję nazywa się często iloczynem logicznym, bo jeśli oznaczymy prawdę i fałsz przez 1 i 0, to zwykłe mnożenie tych dwóch liczb daje taki sam wynik jak koniunkcja.&lt;br /&gt;
&lt;br /&gt;
====Alternatywa====&lt;br /&gt;
Jeśli mamy dwa zdania ''a'' oraz ''b'', ich alternatywą nazywamy wyrażenie, które jest prawdziwe gdy przynajmniej jedno z tych zdań jest prawdziwe.  W matematyce oznacza się to przez &amp;lt;math&amp;gt;a \vee b&amp;lt;/math&amp;gt;. W Pythonie operatorem alternatywy jest &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ponownie, najłatwiej przedstawić działanie operatora w tabelce ze wszystkimi możliwymi parami wartości logicznych:&lt;br /&gt;
:{| class='wikitable' border='1'&lt;br /&gt;
|+&lt;br /&gt;
! colspan=2 | wartości zdań&lt;br /&gt;
! wartość ich alternatywy&lt;br /&gt;
|-&lt;br /&gt;
!align=center |&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt; ||align=center |&amp;lt;tt&amp;gt;b&amp;lt;/tt&amp;gt;||align=center |&amp;lt;tt&amp;gt;a or b&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=center | True || align=center | True || align=center | True&lt;br /&gt;
|-&lt;br /&gt;
| align=center | True || align=center | False || align=center | True&lt;br /&gt;
|-&lt;br /&gt;
| align=center | False || align=center | True || align=center | True&lt;br /&gt;
|-&lt;br /&gt;
| align=center | False || align=center | False || align=center | False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Alternatywę nazywa się często sumą logiczną, bo jeśli ponownie oznaczymy prawdę i fałsz przez 1 i 0, to zwykłe dodawanie tych dwóch liczb daje taki sam wynik jak koniunkcja, za wyjątkiem 1 + 1. W wypadku sumy logicznej dwóch zdań prawdziwych wynik i tak jest 1, bo w algebrze Boole'a po prostu nie ma większej liczby.&lt;br /&gt;
&lt;br /&gt;
====Zaprzeczenie====&lt;br /&gt;
Jeśli mamy zdanie ''a'', jego zaprzeczeniem nazywamy wyrażenie, które jest prawdziwe tylko gdy to zdanie jest fałszywe.&lt;br /&gt;
&lt;br /&gt;
Tutaj tabelka możliwości jest krótsza, bo mamy tylko jedno zdanie:&lt;br /&gt;
:{| class='wikitable' border='1'&lt;br /&gt;
|+&lt;br /&gt;
! wartość zdania&lt;br /&gt;
! wartość jego zaprzeczenia&lt;br /&gt;
|-&lt;br /&gt;
! align=center |&amp;lt;tt&amp;gt;a&amp;lt;/tt&amp;gt;||&amp;lt;tt&amp;gt;not a&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| align=center | True || align=center | False&lt;br /&gt;
|-&lt;br /&gt;
| align=center | False || align=center | True&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Wartość logiczna wyrażeń w Pythonie ===&lt;br /&gt;
Kiedy używamy operatorów przyrównania (&amp;lt;tt&amp;gt;==&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;!=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;gt;=&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;lt;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;gt;&amp;lt;/tt&amp;gt;), w wyniku otrzymujemy jedną z dwóch wartości logicznych &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt;&amp;amp;nbsp;/&amp;amp;nbsp;&amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Podobnie jest w przypadku operatorów &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; (sprawdzenie czy element należy do zbioru) oraz &amp;lt;tt&amp;gt;is&amp;lt;/tt&amp;gt; (sprawdzenie tożsamości). --&amp;gt;&lt;br /&gt;
Większość innych wyrażeń nie jest prawdziwa lub fałszywa w sensie matematycznym. Na przykład napis &amp;lt;tt&amp;gt;&amp;quot;Hello, World&amp;quot;&amp;lt;/tt&amp;gt; nie ma wartości logicznej w sensie matematycznym.&lt;br /&gt;
Niemniej w Pythonie, jak też w wielu innych językach programowania, wszystkie obiekty mają wartość logiczną określaną zgodnie z pewnymi ustalonymi regułami. Pozwala to wykorzystać dowolne wyrażenie jako warunek w poleceniu sterujących wykonaniem programu, jak &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; czy &amp;lt;tt&amp;gt;while&amp;lt;/tt&amp;gt;, bo każde wyrażenie zwraca jakiś obiekt.&lt;br /&gt;
&lt;br /&gt;
W przypadku obiektów które nie są po prostu &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; ani &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;,&lt;br /&gt;
to czy dany obiekt zostanie zinterpretowany jako prawdziwy, czy też jako fałszywy, rządzi się paroma prostymi regułami:&lt;br /&gt;
# w przypadku liczb, liczba 0 jest fałszywa, wszystkie pozostałe są prawdziwe&lt;br /&gt;
# w przypadku sekwencji (np. napisów) i innych kolekcji, tylko te puste, o długości 0, są fałszywe&lt;br /&gt;
# pozostałe obiekty są prawdziwe (o ile ich twórca nie podjął specjalnych działań by mogły mieć różne wartości logiczne)&lt;br /&gt;
TO DO: http://Link?&lt;br /&gt;
&lt;br /&gt;
====Przykład====&lt;br /&gt;
Kiedy piszemy &amp;lt;tt&amp;gt;if temperatura &amp;gt; 0:...&amp;lt;/tt&amp;gt; to jest jasne, jak należy rozumieć warunek &amp;amp;mdash; jest on spełniony jeśli temperatura jest dodatnia. Wartością wyrażenia stanowiącego ten warunek, tak samo jak każdego wyrażenia z dowolnym z operatorów przyrównania, jest wartość logiczna &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; lub &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Jeśli jako warunek napiszemy po prostu &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt;, to to wyrażenie daje w wyniku wartość zmiennej &amp;lt;tt&amp;gt;temperatura&amp;lt;/tt&amp;gt;, czyli zapewne liczbę. Na podstawie podanych powyżej reguł możemy określić, że taki warunek jest równoważny warunkowi &amp;lt;tt&amp;gt;temperatura != 0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli chcemy sprawdzić wartość logiczną, możemy konwersję na wartość logiczną wykonać ''explicite''. Robimy to za pomocą wyrażenia &amp;lt;tt&amp;gt;bool(''coś'')&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
$ python&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(&amp;quot;Hello, World&amp;quot;)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(&amp;quot;&amp;quot;)&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(1)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(120)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(-120)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(0.5)&lt;br /&gt;
True&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(0)&lt;br /&gt;
False&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(0.0)&lt;br /&gt;
False&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(True)&lt;br /&gt;
True&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bool(False)&lt;br /&gt;
False&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Obliczanie wartości wyrażeń logicznych w Pythonie ===&lt;br /&gt;
Jeśli napiszemy wyrażenie zawierające operatory &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt; lub &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt;, często możemy określić wartość logiczną całego wyrażenia bez znajomości wartości logicznej drugiego operandu. Pozwala to na pominięcie części obliczeń, tzw. wykonanie warunkowe {{ang|short-circuiting}}. Mówiąc bardziej konkretnie,&lt;br /&gt;
* w przypadku operatora &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt;, jeśli pierwszy wyraz jest fałszywy, to drugi nie jest obliczany bo wiadomo, że całe wyrażenie jest fałszywe,&lt;br /&gt;
* w przypadku operatora &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt;, jeśli pierwszy wyraz jest prawdziwy, to drugi nie jest obliczany, bo wiadomo, że całe wyrażenie jest prawdziwe.&lt;br /&gt;
&lt;br /&gt;
W przedstawionych powyżej tabelkach przedstawiającej działanie operatorów &amp;lt;tt&amp;gt;and&amp;lt;/tt&amp;gt; lub &amp;lt;tt&amp;gt;or&amp;lt;/tt&amp;gt; na wartości logiczne &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; argumentami były wszystkie możliwe kombinacje tych dwóch wartości. Później zostały przedstawione reguły pozwalająca na nadanie wartości logicznej każdemu wyrażeniu. W przypadku gdy jako argumentu w koniunkcji lub alternatywie użyje się obiektu, który nie jest wartością logiczną &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; albo &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt;, to wynik wyrażenia logicznego też może nie być wartością logiczną.&lt;br /&gt;
&lt;br /&gt;
Tabelki działania operatorów pozostają w mocy, ale aby uwzględnić działanie na nie-''booleans'' i wykonanie warunkowe, do wykonywania operatorów logicznych używa się następujących reguł:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;x and y&amp;lt;/tt&amp;gt; &amp;amp;mdash; jeżeli &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; jest fałszem, zwraca &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, w przeciwnym wypadku zwraca &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;x or y&amp;lt;/tt&amp;gt; &amp;amp;mdash; jeżeli &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; jest prawdą, zwraca &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;, w przeciwnym wypadku zwraca &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wyniki działania tych reguł dla wartości &amp;lt;tt&amp;gt;True&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;False&amp;lt;/tt&amp;gt; dają to co powinny. Natomiast w innych przypadkach pozwalają na budowanie pseudo-zdań logicznych. Np. jeśli prosimy użytkownika o wpisanie pewnego napisu, ale w przypadku gdy wpisał napis pusty chcemy użyć wartości domyślnej, możemy wykorzystać alternatywę:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
print (napis or &amp;quot;(podałeś pusty napis)&amp;quot;)&lt;br /&gt;
# napis o długości 0 jest fałszywy,&lt;br /&gt;
#     w takim wypadku zostanie użyty drugi operand&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Przedstawione powyżej reguły obliczania koniunkcji i alternatywy są równoważne następującemu przepisowi:&lt;br /&gt;
# Zaczynamy od obliczenia wartości lewego operandu.&lt;br /&gt;
# Jeśli wartość logiczna lewego operandu nie pozwala na rozstrzygnięcie wartości logicznej całego wyrażenia, obliczamy wartość prawego operandu.&lt;br /&gt;
# Jako wynik zwracamy ostatni obliczony operand, czyli ten który rozstrzyga o wartości logicznej całego wyrażenia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Zadanie==== &lt;br /&gt;
Proszę napisać program do rozwiązywania równania kwadratowego.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;y = a x^2 + b x + c&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\Delta = b^2 - 4 a c&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;x_{1,2} = \frac{-b \pm \sqrt{\Delta}}{2 a}&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>