Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
1
Podstawy
Podstawy
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
2
Plan prezentacji
Plan prezentacji
●
Garść informacji
Garść informacji
●
Komentarze
Komentarze
●
Stringi
Stringi
●
Wbudowane typy liczbowe
Wbudowane typy liczbowe
●
Systemy liczbowe
Systemy liczbowe
●
Działania
Działania
●
Zmienne
Zmienne
●
Konstrukcja print
Konstrukcja print
●
Pobieranie danych
Pobieranie danych
●
Operatory porównań
Operatory porównań
●
Konstrukcja if
Konstrukcja if
–
Konstrukcja if else
–
Konstrukcja if else
–
–
Konstrukcja if elif else
–
–
Konstrukcja if elif else
–
–
●
Pętla while
Pętla while
–
Pętla while else
–
Pętla while else
–
●
Pętla for
Pętla for
–
Pętla for else
–
Pętla for else
–
●
instrukcje: continue, break i pass
instrukcje: continue, break i pass
●
Sekwencyjne typy danych
Sekwencyjne typy danych
–
Stringi
Stringi
–
Krotki
Krotki
–
Listy
Listy
–
Słowniki
Słowniki
–
Zbiory
Zbiory
●
For dla sekwencyjnych typów danych
For dla sekwencyjnych typów danych
●
Odczyt pliku na przykładzie funkcji for
Odczyt pliku na przykładzie funkcji for
●
Funkcje
Funkcje
●
Klasy
Klasy
●
Wyjątki
Wyjątki
●
Importowanie modułów
Importowanie modułów
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
3
Paradygmaty
Paradygmaty
Python wspiera opiera się na
Python wspiera opiera się na
trzech paradygmatach
trzech paradygmatach
●
Strukturalnym
Strukturalnym
●
Obiektowym
Obiektowym
●
Funkcjonalnym
Funkcjonalnym
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
4
Prosta i czytelna składnia
Prosta i czytelna składnia
Elegancja kodu przez wymuszenie
Elegancja kodu przez wymuszenie
stosowania wcięć
stosowania wcięć
def factorial(value):
def factorial(value):
if value == 0:
if value == 0:
return 1
return 1
else:
else:
return value * factorial(value - 1)
return value * factorial(value - 1)
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
5
Dostępne tryby
Dostępne tryby
Batch mode
Batch mode
python moj_program.py
python moj_program.py
Interactive mode
Interactive mode
$ python
$ python
>>> 2 + 2
>>> 2 + 2
4
4
>>> 'Ala ma kota'
>>> 'Ala ma kota'
'Ala ma kota'
'Ala ma kota'
>>> quit()
>>> quit()
$
$
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
6
Komentarze
Komentarze
# Do końca linii
# Do końca linii
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
7
Stringi
Stringi
String jednolinijkowy z użyciem apostrofów
String jednolinijkowy z użyciem apostrofów
'Jednolinijkowy'
'Jednolinijkowy'
String jednolinijkowy z użyciem cudzysłowia
String jednolinijkowy z użyciem cudzysłowia
”
”
Jednolinjkowy”
Jednolinjkowy”
String wielolinijkowy
String wielolinijkowy
”””
”””
Wielo-
Wielo-
-linijkowy”””
-linijkowy”””
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
8
Wbudowane typy liczbowe
Wbudowane typy liczbowe
Liczby całkowite int
–
Liczby całkowite int
–
-13, 7776
-13, 7776
konwersja: int(liczba)
konwersja: int(liczba)
Duże liczby całkowite long
–
Duże liczby całkowite long
–
99999999999999999L, -777777777777777l
99999999999999999L, -777777777777777l
konwersja: long(liczba)
konwersja: long(liczba)
Liczby zmiennoprzecinkowe float
–
Liczby zmiennoprzecinkowe float
–
12.3, 0.5
12.3, 0.5
konwersja: float(liczba)
konwersja: float(liczba)
Liczby zespolone complex
–
Liczby zespolone complex
–
3 + 2j
3 + 2j
konwersja: complex(liczba)
konwersja: complex(liczba)
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
9
Systemy liczbowe
Systemy liczbowe
Ósemkowy poprzedzamy 0
–
Ósemkowy poprzedzamy 0
–
07776, 017140
07776, 017140
konwersja: oct(0x7776), oct(7776)
konwersja: oct(0x7776), oct(7776)
Dziesiętny domyślny
–
Dziesiętny domyślny
–
przykład: 7776, 10000
przykład: 7776, 10000
konwersja: int(07776), int(0x7776)
konwersja: int(07776), int(0x7776)
Hexadecymalny poprzedzamy 0x
–
Hexadecymalny poprzedzamy 0x
–
przykład: 0x7776, 0x1e60
przykład: 0x7776, 0x1e60
konwersja: hex(07776), hex(7776)
konwersja: hex(07776), hex(7776)
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
10
Wbudowana działania języka
Wbudowana działania języka
+ dodawanie
+ dodawanie
- odejmowanie
- odejmowanie
* mnożenie
* mnożenie
/ dzielenie
/ dzielenie
% reszta z dzielenia (modulo)
% reszta z dzielenia (modulo)
** podnoszenie do potęgi
** podnoszenie do potęgi
// podłoga z dzielenia
// podłoga z dzielenia
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
11
Zmienne
Zmienne
Automatycznie określany typ
Automatycznie określany typ
liczba = 76
liczba = 76
ocena = 5.5
ocena = 5.5
wydzial = 'FtiMS'
wydzial = 'FtiMS'
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
12
Wypisywanie wyników
Wypisywanie wyników
print Napis
„
”
print Napis
„
”
# Napis\n
# Napis\n
print 'Jan' + 'Kowalski'
print 'Jan' + 'Kowalski'
# JanKowalski\n
# JanKowalski\n
print 'Jan' Kowalski
”
”
print 'Jan' Kowalski
”
”
# JanKowalski\n
# JanKowalski\n
print ocena
print ocena
# 5.5\n
# 5.5\n
print liczba
print liczba
# 76\n
# 76\n
print wydzial
print wydzial
# FTiMS\n
# FTiMS\n
# \n
# \n
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
13
Wypisywanie wyników
Wypisywanie wyników
print Wydzial: + wydzial + \n \
”
„
„ ”
print Wydzial: + wydzial + \n \
”
„
„ ”
+ Ocena: + str(ocena) + \n \
„
„
„ ”
+ Ocena: + str(ocena) + \n \
„
„
„ ”
+ Album: + str(liczba) + \n
„
„
„ ”
+ Album: + str(liczba) + \n
„
„
„ ”
„
„
Wydzial: FtiMS
Wydzial: FtiMS
Ocena 5.5
Ocena 5.5
Album: 76”
Album: 76”
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
14
Pobieranie danych
Pobieranie danych
Jako tekst:
Jako tekst:
liczba = raw_input('Podaj liczbę: ')
liczba = raw_input('Podaj liczbę: ')
Jako liczbę:
Jako liczbę:
liczba = input('Podaj liczbę: ')
liczba = input('Podaj liczbę: ')
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
15
Operatory porównań
Operatory porównań
Operator mniejszości
Operator mniejszości
1 < 2
1 < 2
# True
# True
Operator większości
Operator większości
77 > 66
77 > 66
# True
# True
Mniejsze lub równe
Mniejsze lub równe
17 <= 17
17 <= 17
# True
# True
Większe lub równe
Większe lub równe
37 >= 36
37 >= 36
# True
# True
Operator równości
Operator równości
7 == 7.0
7 == 7.0
# True
# True
Operator nierówności
Operator nierówności
6 != 7
6 != 7
# True
# True
Operator identyczność
Operator identyczność
7 is 7.0
7 is 7.0
# False
# False
Operator zaprzeczenia
Operator zaprzeczenia
not False
not False
# True
# True
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
16
Struktura if
Struktura if
if liczba == 2:
if liczba == 2:
print Nie zdałeś !
„
”
print Nie zdałeś !
„
”
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
17
Struktura if - else
Struktura if - else
if liczba == 2:
if liczba == 2:
print Nie zdałeś !
„
”
print Nie zdałeś !
„
”
else:
else:
print Zdałeś !
„
”
print Zdałeś !
„
”
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
18
Struktura if elif - else
–
Struktura if elif - else
–
if liczba == 2:
if liczba == 2:
print Nie zdałeś !
„
”
print Nie zdałeś !
„
”
elif liczba < 0:
elif liczba < 0:
print Mniej niż zeroooo, mniej niż zeroooo !
„
”
print Mniej niż zeroooo, mniej niż zeroooo !
„
”
else:
else:
print Zdałeś !
„
”
print Zdałeś !
„
”
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
19
Struktura if elif - else
–
Struktura if elif - else
–
W warunkach możemy używać
W warunkach możemy używać
not
not
zaprzeczenie (negacja)
–
zaprzeczenie (negacja)
–
if not czy_zalogowany:
if not czy_zalogowany:
and
and
iloczyn logiczny (koniunkcja)
–
iloczyn logiczny (koniunkcja)
–
if zalogowany and admin:
if zalogowany and admin:
or
or
suma logiczna (alternatywa)
–
suma logiczna (alternatywa)
–
if moderator or administrator:
if moderator or administrator:
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
20
Struktura switch
Struktura switch
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
21
Klauzula else
Klauzula else
Klauzula else występuje w niemalże każdej
Klauzula else występuje w niemalże każdej
instrukcji blokowej wspieranej przez Pythona.
instrukcji blokowej wspieranej przez Pythona.
Między innymi w: if, for, while, try
Między innymi w: if, for, while, try
Wykonuje się ona gdy warunek jest, po raz
„
”
Wykonuje się ona gdy warunek jest, po raz
„
”
pierwszy, nie spełniony
pierwszy, nie spełniony
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
22
Pętla while
Pętla while
i = 0
i = 0
while i < 10:
while i < 10:
print i
print i
i = i +1
i = i +1
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
23
Pętla while - else
Pętla while - else
i = 0
i = 0
while i < 10:
while i < 10:
print i
print i
i = i +1
i = i +1
else:
else:
print 'else'
print 'else'
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
else
else
http://docs.python.org/reference/compound_stmts.html#the-while-statement
http://docs.python.org/reference/compound_stmts.html#the-while-statement
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
24
Pętla for
Pętla for
Generowanie zakresu
Generowanie zakresu
–
range (start, stop, krok)
range (start, stop, krok)
–
xrange (start, stop, krok)
xrange (start, stop, krok)
# oszczędność pamięci !
# oszczędność pamięci !
krok domyślnie 1
–
krok domyślnie 1
–
http://docs.python.org/library/functions.html#range
http://docs.python.org/library/functions.html#range
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
25
Pętla for
Pętla for
for i in range(0, 10):
for i in range(0, 10):
print i
print i
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
26
Pętla for - else
Pętla for - else
for i in range(0, 10):
for i in range(0, 10):
print i
print i
else:
else:
print 'else'
print 'else'
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
else
else
http://docs.python.org/reference/compound_stmts.html#the-for-statement
http://docs.python.org/reference/compound_stmts.html#the-for-statement
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
27
continue i break, pass
continue i break, pass
Przeskocz do następnego cyklu pętli
Przeskocz do następnego cyklu pętli
continue
continue
Przerwij aktualnie wykonywaną pętlę
Przerwij aktualnie wykonywaną pętlę
break
break
Instrukcja pusta
Instrukcja pusta
pass
pass
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
28
Typy sekwencyjne
Typy sekwencyjne
●
Stringi
Stringi
●
Krotki
Krotki
●
Listy
Listy
●
Słowniki
Słowniki
●
Zbiory
Zbiory
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
29
Stringi
Stringi
napis = Napisy na murach kłamią
„
”
napis = Napisy na murach kłamią
„
”
len(napis)
len(napis)
24
24
napis[1]
napis[1]
a
a
napis[7]
napis[7]
n
n
napis[-1]
napis[-1]
ą
ą
napis[10:16]
napis[10:16]
murach
murach
napis[10:-1]
napis[10:-1]
murach kłamią
murach kłamią
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
30
Krotki - niezmienne
Krotki - niezmienne
krotka = (1, 'dwa', 3.3)
krotka = (1, 'dwa', 3.3)
len(krotka)
len(krotka)
3
3
krotka[1]
krotka[1]
dwa
dwa
krotka[-1]
krotka[-1]
3.3
3.3
krotka[0:1]
krotka[0:1]
(1,)
(1,)
krotka[0:-1]
krotka[0:-1]
(1, 'dwa')
(1, 'dwa')
http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences
http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
31
Listy - zmienne
Listy - zmienne
lista = [1, 'dwa', 3.3]
lista = [1, 'dwa', 3.3]
len[lista]
len[lista]
3
3
lista[1]
lista[1]
dwa
dwa
lista[-1]
lista[-1]
3.3
3.3
lista[0:1]
lista[0:1]
[1,]
[1,]
lista[0:-1]
lista[0:-1]
[1, 'dwa']
[1, 'dwa']
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
32
Listy - zmienne
Listy - zmienne
lista = [1, 'dwa', 3.3]
lista = [1, 'dwa', 3.3]
lista[0] = 'jeden'
lista[0] = 'jeden'
['jeden', 'dwa', 3.3]
['jeden', 'dwa', 3.3]
lista[1:3] = [2, 'trzy']
lista[1:3] = [2, 'trzy']
['jeden', 2, 'trzy']
['jeden', 2, 'trzy']
del(lista[0])
del(lista[0])
[2,'trzy']
[2,'trzy']
lista[2] = 5
lista[2] = 5
[2,'trzy', 5]
[2,'trzy', 5]
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
33
Słowniki - zmienne
Słowniki - zmienne
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
len(slownik)
len(slownik)
2
2
slownik['imie']
slownik['imie']
Kubuś
Kubuś
slownik['wiek']
slownik['wiek']
1.5
1.5
slownik['pierwsze_slowo'] = 'Mama'
slownik['pierwsze_slowo'] = 'Mama'
{'imie': Kubuś , ''pierwsze_slowo': 'Mama', 'wiek': 1.5 }
„
”
{'imie': Kubuś , ''pierwsze_slowo': 'Mama', 'wiek': 1.5 }
„
”
del(slownik['wiek'])
del(slownik['wiek'])
{'imie': Kubuś , 'pierwsze_slowo': 'Mama'}
„
”
{'imie': Kubuś , 'pierwsze_slowo': 'Mama'}
„
”
slownik['roczek'] = 'drugi'
slownik['roczek'] = 'drugi'
{'imie': Kubuś , 'pierwsze_slowo': 'Mama', 'roczek': ;drugi'}
„
”
{'imie': Kubuś , 'pierwsze_slowo': 'Mama', 'roczek': ;drugi'}
„
”
http://docs.python.org/tutorial/datastructures.html#dictionaries
http://docs.python.org/tutorial/datastructures.html#dictionaries
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
34
Zbiory
Zbiory
schronisko1 = set(['kot', 'pies', 'krowa', 'kura'])
schronisko1 = set(['kot', 'pies', 'krowa', 'kura'])
schronisko2 = frozenset(['kot', 'pies', 'szop', 'pluszowy miś'])
schronisko2 = frozenset(['kot', 'pies', 'szop', 'pluszowy miś'])
len(schronisko2)
len(schronisko2)
4
4
schronisko1 & schronisko2
schronisko1 & schronisko2
set(['kot', 'pies'])
set(['kot', 'pies'])
schronisko1 | schronisko2
schronisko1 | schronisko2
set(['szop', 'pies', 'kura', 'krowa', 'pluszowy miś', 'kot'])
set(['szop', 'pies', 'kura', 'krowa', 'pluszowy miś', 'kot'])
schronisko1 schronisko2
–
schronisko1 schronisko2
–
set(['krowa, 'kura'])
set(['krowa, 'kura'])
schronisko1 ^ schronisko 2
schronisko1 ^ schronisko 2
set(['szop', 'kura, 'krowa', 'pluszowy miś'])
set(['szop', 'kura, 'krowa', 'pluszowy miś'])
schronisko1 >= set(['kot', 'pies'])
schronisko1 >= set(['kot', 'pies'])
True
True
schronisko2 <= set(['kot', 'pies'])
schronisko2 <= set(['kot', 'pies'])
False
False
'krowa' in schronisko2
'krowa' in schronisko2
False
False
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
35
Pętla for - napisy
Pętla for - napisy
napis = Napisy na murach kłamią
„
”
napis = Napisy na murach kłamią
„
”
for litera in napis:
for litera in napis:
print litera
print litera
N
N
a
a
p
p
i
i
s
s
y
y
n
n
a
a
m
m
u
u
r
r
a
a
c
c
h
h
k
k
ł
ł
a
a
m
m
i
i
ą
ą
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
36
Pętla for - krotki
Pętla for - krotki
krotka = (1, 'dwa', 3.3)
krotka = (1, 'dwa', 3.3)
for element in krotka:
for element in krotka:
print element
print element
1
1
'dwa'
'dwa'
3.3
3.3
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
37
Pętla for - krotki
Pętla for - krotki
krotka = (1, 'dwa', 3.3)
krotka = (1, 'dwa', 3.3)
for nr, element in enumerate(krotka):
for nr, element in enumerate(krotka):
print str(nr) + ': ' + str(element)
print str(nr) + ': ' + str(element)
0: 1
0: 1
1: dwa
1: dwa
2: 3.3
2: 3.3
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
38
Pętla for - listy
Pętla for - listy
lista = [1, 'dwa', 3.3]
lista = [1, 'dwa', 3.3]
for element in lista:
for element in lista:
print element
print element
1
1
'dwa'
'dwa'
3.3
3.3
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
39
Pętla for - listy
Pętla for - listy
lista = [1, 'dwa', 3.3]
lista = [1, 'dwa', 3.3]
for nr, element in enumerate(lista):
for nr, element in enumerate(lista):
print str(nr) + ': ' + str(element)
print str(nr) + ': ' + str(element)
0: 1
0: 1
1: dwa
1: dwa
2: 3.3
2: 3.3
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
40
Pętla for - słowniki
Pętla for - słowniki
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
for klucz, wartosc in slownik:
for klucz, wartosc in slownik:
print str(klucz) + ': ' + str(wartosc)
print str(klucz) + ': ' + str(wartosc)
imie: Kubuś
imie: Kubuś
wiek: 1.5
wiek: 1.5
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
41
Pętla for - słowniki
Pętla for - słowniki
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
slownik = {'imie': Kubuś , 'wiek': 1.5}
„
”
for klucz, wartosc in slownik:
for klucz, wartosc in slownik:
print str(klucz) + ': ' + str(wartosc)
print str(klucz) + ': ' + str(wartosc)
kopie
kopie
dostęp do elementów
dostęp do elementów
keys() iterkeys()
keys() iterkeys()
values() itervalues()
values() itervalues()
items() iteritems()
items() iteritems()
imie: Kubuś
imie: Kubuś
wiek: 1.5
wiek: 1.5
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
42
Pętla for - zbiory
Pętla for - zbiory
schronisko = set(['krowa', 'kot', 'kura',
schronisko = set(['krowa', 'kot', 'kura',
'pies'])
'pies'])
for zwierzak in schronisko:
for zwierzak in schronisko:
print zwierzak
print zwierzak
krowa
krowa
kot
kot
kura
kura
pies
pies
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
43
Pętla for pliki
–
Pętla for pliki
–
plik = open('./loremipsum.txt', 'r')
plik = open('./loremipsum.txt', 'r')
for linijka in plik:
for linijka in plik:
print linijka
print linijka
Lorem ipsum dolor sit amet,
Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Nunc
consectetuer adipiscing elit. Nunc
rutrum nunc congue mi. Sed
rutrum nunc congue mi. Sed
rhoncus felis at augue. Praesent
rhoncus felis at augue. Praesent
ultrices vestibulum libero. Ut quis
ultrices vestibulum libero. Ut quis
lectus. Fusce in sapien. Etiam quis
lectus. Fusce in sapien. Etiam quis
enim. Proin scelerisque tincidunt
enim. Proin scelerisque tincidunt
orci. Quisque molestie
orci. Quisque molestie
condimentum arcu. Vivamus odio.
condimentum arcu. Vivamus odio.
Etiam eu enim.
Etiam eu enim.
http://docs.python.org/tutorial/datastructures.html#looping-techniques
http://docs.python.org/tutorial/datastructures.html#looping-techniques
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
44
Definiowanie funkcji
Definiowanie funkcji
Funkcji używamy z użyciem słowa kluczowego
Funkcji używamy z użyciem słowa kluczowego
def
def
def szescian(x):
def szescian(x):
return x*x*x
return x*x*x
szescian(2)
szescian(2)
# 8
# 8
szescian(3)
szescian(3)
# 27
# 27
szescian(10)
szescian(10)
# 1000
# 1000
szescian(777)
szescian(777)
# 469097433
# 469097433
http://docs.python.org/tutorial/controlflow.html#defining-functions
http://docs.python.org/tutorial/controlflow.html#defining-functions
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
45
Definiowanie klasy
Definiowanie klasy
Klasę definiujemy z użyciem słowa class
Klasę definiujemy z użyciem słowa class
Każda klasa dziedziczy po object
Każda klasa dziedziczy po object
class MojaKlasa(object):
class MojaKlasa(object):
pass
pass
http://docs.python.org/tutorial/controlflow.html#defining-functions
http://docs.python.org/tutorial/controlflow.html#defining-functions
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
46
Pola klasy
Pola klasy
Domyślnie wszystkie pola klas są publiczne
Domyślnie wszystkie pola klas są publiczne
class Student(object):
class Student(object):
pass
pass
studentka1 = Student()
studentka1 = Student()
studentka1.imie = 'Małgorzata'
studentka1.imie = 'Małgorzata'
studentka1.nazwisko = 'Noybauer'
studentka1.nazwisko = 'Noybauer'
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
47
Pola klasy
Pola klasy
Pola klasy definiujemy w konstruktorze -
Pola klasy definiujemy w konstruktorze -
metodzie __init__()
metodzie __init__()
class Student(object):
class Student(object):
def __init__(self):
def __init__(self):
self.imie = ''
self.imie = ''
studentka1 = Student()
studentka1 = Student()
studentka1.imie = 'Małgorzata'
studentka1.imie = 'Małgorzata'
studentka1.nazwisko = 'Noybauer'
studentka1.nazwisko = 'Noybauer'
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
48
Metody klas
Metody klas
Każda metoda jako pierwszy parametr przyjmuje
Każda metoda jako pierwszy parametr przyjmuje
obiekt, do którego należy - self
obiekt, do którego należy - self
class Student(object):
class Student(object):
def inicjaly(self):
def inicjaly(self):
return self.imie[0] + . + self.nazwisko[0] + .
„ ”
„ ”
return self.imie[0] + . + self.nazwisko[0] + .
„ ”
„ ”
stud = Student()
stud = Student()
stud.imie = 'Ruzia'
stud.imie = 'Ruzia'
stud.Nazwisko = 'Kowalska'
stud.Nazwisko = 'Kowalska'
print stud.inicjaly()
print stud.inicjaly()
R.K.
R.K.
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
49
Wyjątki
Wyjątki
Błędy w języku komunikowane są przez
Błędy w języku komunikowane są przez
zgłaszane wyjątki. Tak na przykład gdy
zgłaszane wyjątki. Tak na przykład gdy
próbujemy wyświetlić coś co nie istnieje
próbujemy wyświetlić coś co nie istnieje
slownik = {'novum': 'aula'}
slownik = {'novum': 'aula'}
try:
try:
print slownik['nowy']
print slownik['nowy']
except KeyError:
except KeyError:
print 'Error. Klucz nowy nie istnieje'
print 'Error. Klucz nowy nie istnieje'
return -1
return -1
Jan Koprowski <jan.koprowski@gmail.com> Politechnika Gdańska, FTiMS – Informatyka Stosowana
50
Importowanie z innych bibliotek
Importowanie z innych bibliotek
Do ładowania innych bibliotek służy słowo
Do ładowania innych bibliotek służy słowo
kluczowe import. Po zaimportowaniu modułu
kluczowe import. Po zaimportowaniu modułu
wszystkie funkcje zawarte są w przestrzeni
wszystkie funkcje zawarte są w przestrzeni
nazw o tej samej nazwie.
nazw o tej samej nazwie.
import math
import math
math.sqrt(4)
math.sqrt(4)
math.log10(1000)
math.log10(1000)
math.sin(math.pi)
math.sin(math.pi)
http://docs.python.org/tutorial/modules.html#importing-from-a-package
http://docs.python.org/tutorial/modules.html#importing-from-a-package