Po uruchomieniu IDLE'a zgłasza się tryb interaktywny Pythona. Wypróbujemy w nim działanie operatorów porównania.
Najważniejszym operatorem porównania jest operator równości.
Rezultatem każdego operatora porównania (w tym operatora równości) jest wartość typu logicznego, mogąca przybierać tylko dwie możliwe wartości: prawda lub fałsz.
Wpiszmy:
>>> 2==2
True
Uzyskany rezultat True
oznacza, że prawdą jest, że 2 równe jest 2.
>>> 2==4
False
Uzyskany rezultat False
oznacza, że nieprawdą jest, że 2 równe jest 4.
Poważnym błędem jest mylenie operator równości (= =) z instrukcją przypisania (=). Porównajmy:
>>>
2=2
SyntaxError:
can't assign to literal
>>>
a==2
Traceback
(most recent call last):
File
"<pyshell#3>", line 1, in -toplevel-
a==2
NameError:
name 'a' is not defined
>>>
a=2
>>>
a==2
True
>>>
Do sprawdzania nierówności służy następujący operator:
>>> 2!=2
False
>>> 2!=4
True
Poniższy zapis również jest poprawny, lecz nie jest zalecany przez twórców Pythona:
>>> 2<>4
True
>>> 2<>2
False
>>>
Poniższy zapis jest niepoprawny:
>>> 2><4
SyntaxError: invalid
syntax
Do sprawdzania
ostrej większości i mniejszości służą następujące operatory:
>>> 2>4
False
>>> 2<4
True
>>> 2>1
True
>>> 2<1
False
Do sprawdzania
nieostrej większości i mniejszości służą następujące operatory:
>>>
2>=4
False
>>>
2<=4
True
>>>
2<=2
True
>>>
2>=2
True
>>>
W przypadku, gdy porównywane są napisy, kryterium porównania jest kolejność leksykograficzna:
>>>
'Ala'=='Ala'
True
>>>
'Ala'!='Ola'
True
>>>
'Ala'>='Ola'
False
>>>
'Ala'<'Ola'
True
>>>
'A'<'Aa'
True
>>>
"123">"14"
False
W przypadku, gdy porównywane są wyrażenia, kryterium porównania jest rezultat wyrażenia:
>>>
22.0/7>3.14
True
>>>
a=14
>>>
a**0.5<4**2
True
>>>
(1+2+3+4)*0xA==0100+6*6
True
>>>
'Ala'*2=='Ala'+'Ala'
True
Porównania mogą zawierać jednocześnie więcej niż jeden operator:
>>>
1<3<7
True
>>>
1>=1>2
False
>>>
2==2>1.1>-1>-1000
True
>>>
'Ala'<'Ola'<'Zenek'
True
Porównywać można także rezultaty porównań:
>>>
(1==2)==(2==3)
True
Co należy rozumieć: Rezultat porównania 1 z 2 (fałsz) jest taki sam jak rezultat porównania 2 z 3 (również fałsz).
Więcej przykładów:
>>>
(2>1)==(3>2)
True
>>>
(2!=2)!=(3!=3)
False
Operator negacji zaprzecza wynik porównania po nim:
>>>
not 1==1
False
>>>
not 2==0
True
Operator sumy logicznej zwraca prawdę tylko wtedy, gdy choć jedno z połączonych nim wyrażeń jest prawdziwe:
>>>
True or False
True
>>>
False or not True
False
>>>
1==2 or 1==3 or 1==1
True
>>>
'Abc'=='Def' or 7>100 or 1==1
True
Operator iloczynu logicznego zwraca prawdę tylko wtedy, gdy każde z połączonych nim wyrażeń jest prawdziwe:
>>>
True and True
True
>>>
True and False
False
>>>
1==1 and 2==3 or 3==3
True
>>>
1==1 and 2==3 and 3==3
False
W pierwszej kolejności wykonywane są operatory porównania, później operator negacji, następnie iloczynu logicznego, a na końcu sumy logicznej (takie same operatory wykonywane są w kolejności od lewej do prawej). Porównajmy:
>>>
False and False or True
True
>>>
False and (False or True)
False
Aby uzależnić wykonanie instrukcji od rezultatu porównania, używamy instrukcji warunkowej (Uwaga: W trybie interaktywnym, na końcu każdej instrukcji złożonej - np. IF - konieczne jest dwukrotne wciśnięcie klawisza Enter):
>>> if 2==2:
print "OK"
OK
Wyświetliło się "OK", bo warunek po IF jest spełniony.
>>> if 2!=2:
print "OK"
Nie wyświetliło się "OK", bo warunek po IF nie został spełniony.
Można ustalić wykonanie różnych instrukcji dla obu możliwych przypadków:
>>>
if 2!=2: print "Dziwne"
else: print
"Normalne"
Normalne
Można ustalić wykonanie różnych instrukcji dla różnych przypadków:
>>>
if 2==1: print "Dziwne 1"
elif 2==2:
print "Normalne"
elif 2==3:
print "Dziwne 3"
else: print
"Dziwne inne"
Normalne
Aby przejść do edycji nowego programu należy z menu File wybrać polecenie New Window.
Otworzy się nowe okno, przeznaczone do edycji programu. Zaczniemy od nadania programowi nazwy. W tym celu wybierzmy z menu File polecenie Save As. Wybieramy folder Moje dokumenty, następnie wpisujemy nazwę warunek1.py. Klikamy na Zapisz.
Przepiszmy następujący program:
# Pierwszy program rozgałęziony
Uwagi do programu:
- Instrukcja input służy do wprowadzania liczb (przypomnijmy, że raw_input wprowadza tekst). Liczba może być podana przez użytkownika explicite, lub w postaci wyrażenia algebraicznego.
- Przecinek na końcu listy parametrów instrukcji print powoduje, że kolejna instrukcja print wyświetli tekst w tej samej (a nie następnej) linii
W celu uruchomienia programu wybieramy z menu Run polecenie Run Module (lub wciskamy klawisz F5).
Fragment programu, który wykonywany jest zależnie od wyniku instrukcji if określamy mianem bloku warunkowego. W języku Python blok warunkowy oznaczamy poprzez "wcięcie" tekstu o jeden tabulator w prawo.
Przyjrzyjmy się końcówce naszego programu:
Załóżmy, że chcielibyśmy, aby na końcu programu wyświetlał się napis "dziękuję". Dopiszmy następującą linię:
I uruchommy program. Jeżeli piszemy liczby 3 i 4, to napis "Dziękuję" zostanie wyświetlony:
Jeżeli jednak wpiszemy liczby 3 i 3, to napis "Dziękuję" nie zostanie wyświetlony:
Dzieje się tak, gdyż instrukcja print "Dziękuję!" jest wewnątrz
bloku warunkowego po "else:
". Aby "Dziękuję" wyświetlane
było niezależnie od wyniku porównania, zmieniamy program poprzez skasowanie
tabulatora na początku ostatniej linii:
else:
print "Dziękuję!"
Teraz, po uruchomieniu programu, zobaczymy:
Ten program porównuje
dwie liczby
Podaj pierwszą z dwóch
liczb:3
Podaj drugą z dwóch
liczb:3
Liczba 3 w stosunku do
3 jest: taka sama
Dziękuję!
Ważne: po instrukcji rozgałęziającej program (np. if, elif, else), wszystkie instrukcje należące do rozgałęzienia muszą być "wcięte" w prawo. Koniec gałęzi wyznacza pierwsza instrukcja, która jest na tym samym poziomie wysunięcia, co instrukcja rozgałęziająca.
Poszczególne gałęzie programu można rozgałęziać na dalsze gałęzie.
Aby przejść do edycji nowego programu należy z menu File wybrać polecenie New Window.
Otworzy się nowe okno, przeznaczone do edycji programu. Zaczniemy od nadania programowi nazwy. W tym celu wybierzmy z menu File polecenie Save As. Wybieramy folder Moje dokumenty, następnie wpisujemy nazwę warunek2.py. Klikamy na Zapisz.
Przepiszmy następujący program:
# Program wielokrotnie rozgałęziony
W celu uruchomienia programu wybieramy z menu Run polecenie Run Module (lub wciskamy klawisz F5). Po chwili nasz program zostanie uruchomiony. Wypróbujmy:
I. Napisz program "parzyste.py", który wczyta od użytkownika liczbę całkowitą i wyświetli informację, czy jest to liczba parzysta, czy nieparzysta.
II. Napisz program "calkowite.py”, który wczyta od użytkownika liczbę i wyświetli informację, czy jest to liczba całkowita, czy niecałkowita.
III. Napisz program "prk.py", który obliczy wszystkie pierwiastki rzeczywiste równania kwadratowego o postaci ax2+bx+c=0, gdzie a, b i c podaje użytkownik. Program powinien na początku sprawdzić, czy wprowadzone równanie jest rzeczywiście kwadratowe.