1. Start
Do roboty
Biblioteki
Idiomy
Co dalej?
Wstęp do Pythona
Konrad Delong
5 listopada 2008, Akademia Górniczo-Hutnicza
Konrad Delong Wstęp do Pythona
2. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Dzień dobry
Kto mówi?
AGH, Python
Studencki Festiwal Informatyczny, Pykonik
Pykonik Jutro!
http://konryd.blogspot.com
Konrad Delong Wstęp do Pythona
3. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Dzień dobry
Kto mówi?
AGH, Python
Studencki Festiwal Informatyczny, Pykonik
Pykonik Jutro!
http://konryd.blogspot.com
Konrad Delong Wstęp do Pythona
4. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Audiencja docelowa
Do kogo?
Osoby nieznające Pythona, (nawet niekoniecznie umiejące
programować)
Konrad Delong Wstęp do Pythona
5. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Cel
Po co?
Przedstawić
Wyjaśnić
Zaciekawić
Dla studentów I roku na AGH: pokazać Pythona zanim
dziekan pokaże ruby’ego
Konrad Delong Wstęp do Pythona
6. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Cel
Po co?
Przedstawić
Wyjaśnić
Zaciekawić
Dla studentów I roku na AGH: pokazać Pythona zanim
dziekan pokaże ruby’ego
Konrad Delong Wstęp do Pythona
7. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Historia
Język stworzony przez Guido von Rossuma w 1990 roku
Inspirowany jego poprzednią pracą (język ABC)
Nazwa...
Pojęcie BDFL
Aktualnie wersja 2.6, wciąż powszechna 2.5, czekamy na 2.7 i
3.0
Alternatywne implementacje
Łączący paradygmaty programowania: strukturalny, obiektowy
i funkcyjny
Konrad Delong Wstęp do Pythona
8. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Użycia
Używany przez Google i NASA (i mnie)
Skrypty
Aplikacje biurkowe
Aplikacje sieciowe
Gry / animacje
Administracja
Cała reszta
Konrad Delong Wstęp do Pythona
9. Start
Do roboty
Intro
Biblioteki
Wstęp do wstępu
Idiomy
Co dalej?
Bajery
Wbudowane struktury danych (ze wsparciem składniowym!)
Interaktywny interpreter z wbudowaną pomocą
Nacisk na czytelność (znaczące białe znaki), unikanie czarów
System modułów, przestrzenie nazw
The Zen of Python
Konrad Delong Wstęp do Pythona
10. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
if
if a == b:
print quot;NOWAI! Takie same!quot;
# a tutaj jest komentarz
Konrad Delong Wstęp do Pythona
11. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
if..else
if a == b:
print quot;NOWAI! Takie same!quot;
else:
print quot;A jednak nie!quot;
# i jeszcze jeden komentarz
Konrad Delong Wstęp do Pythona
12. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
while
a = 10
while a > 0:
print a
a = a / 2
# wypisze 10, 5, 2, 1
Konrad Delong Wstęp do Pythona
13. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
for..in
for a in (10, 5, 2, 1):
print a
for i in range(3): # 0, 1, 2
print i
Konrad Delong Wstęp do Pythona
14. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
do..while
NI MA
Konrad Delong Wstęp do Pythona
15. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
try..except
try:
a = 1 / b
except ZeroDivisionError:
print quot;Nie dziel przez zeroquot;
Konrad Delong Wstęp do Pythona
16. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
funkcje
def is_it_monday(day):
if day == quot;Mondayquot;:
return True
else:
return False
print is_it_monday(quot;Tuesdayquot;)
Konrad Delong Wstęp do Pythona
17. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
lambda
def twice(x):
return 2 * x
# to samo
twice = lambda x: 2 * x
Konrad Delong Wstęp do Pythona
18. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
klasy
class Dog(object):
def speak(self):
print quot;Hau!quot;
burek = Dog()
burek.speak()
Konrad Delong Wstęp do Pythona
19. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Struktury danych
Tablice haszujące, Funkcje haszujące
Konrad Delong Wstęp do Pythona
20. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Struktury danych
Zrobione raz. Zrobione dobrze.
Literały – czytelność.
Lista
Krotka
Słownik
Zbiór
Konrad Delong Wstęp do Pythona
21. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Listy
[1, quot;blah!quot;, 3.4, [1, 2]]
Uporządkowany ciąg elementów dowolnego typu
Można myśleć jak o tablicy, której długością nie trzeba się
przejmować
Konrad Delong Wstęp do Pythona
22. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Krotki
(1, quot;blah!quot;, 3.4, (1, 2))
Uporządkowany ciąg elementów dowolnego typu
Immutable - można wyliczyć hasz (zaindeksować słownik,
trzymać w zbiorze)
Konrad Delong Wstęp do Pythona
23. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Słowniki
{1: 2, quot;asdfquot;: 3, (3, 4): quot;a tutaj krotkaquot;}
Przechowują mapowanie elementów haszowalnych w cokolwiek
Można myśleć jak o tablicy, której nie musimy indeksować
liczbami
Wyszukiwanie elementu O(1)
Zoptymalizowane dla stringów (często używane w Pythonie)
NAPRAWDĘ ZOPTYMALIZOWANE
Konrad Delong Wstęp do Pythona
24. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Słowniki
{1: 2, quot;asdfquot;: 3, (3, 4): quot;a tutaj krotkaquot;}
Przechowują mapowanie elementów haszowalnych w cokolwiek
Można myśleć jak o tablicy, której nie musimy indeksować
liczbami
Wyszukiwanie elementu O(1)
Zoptymalizowane dla stringów (często używane w Pythonie)
NAPRAWDĘ ZOPTYMALIZOWANE
Konrad Delong Wstęp do Pythona
25. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Zbiory
set([1, 2, quot;asdfquot;]) # nie do końca literał
W gruncie rzeczy słowniki
Przechowują tylko obiekty haszowalne
Podstawowa operacja 1: dodanie elementu
Podstawowa operacja 2: sprawdzenie obecności elementu
Konrad Delong Wstęp do Pythona
26. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
Moduły
DEMO
Konrad Delong Wstęp do Pythona
27. Start
Do roboty Składnia
Biblioteki Struktury danych
Idiomy System modułów i przestrzenie nazw
Co dalej?
wildcard import
LUKE: Is from module import * better than explicit imports?
YODA: No, not better. Quicker, easier, more seductive.
LUKE: But how will I know why explicit imports are better than
the wild-card form?
YODA: Know you will when your code you try to read six months
from now.
Konrad Delong Wstęp do Pythona
28. Start
Do roboty
Biblioteki
Idiomy
Co dalej?
Biblioteki
biblioteka standardowa - skarby na dzieńdobry
numPy - obliczenia numeryczne
symPy - obliczenia numeryczne
PIL - operacje na plikach graficznych
matplotlib - produkowanie wykresów
django, turbogears, pylons - frameworki sieciowe
wxPython, pygtk, pyqt, winforms (tylko na .net)
i wiele, wiele innych...(Cheeseshop + easy install)
Konrad Delong Wstęp do Pythona
29. Start
Do roboty
Biblioteki
Idiomy
Co dalej?
kwiatki
b, a = a, b # swap
pair = (quot;Johnquot;, quot;Doequot;) # unpacking
first, last = name
# list comprehensions
[2 * x for x in range(3)] # == [0, 2, 4]
# string formatting
print quot;a is %s and b is %squot; % (a, b)
Konrad Delong Wstęp do Pythona
30. Start
Do roboty
Biblioteki
Idiomy
Co dalej?
skrypty
if __name__ == ’__main__’:
print quot;I am run as a script, not imported!quot;
Konrad Delong Wstęp do Pythona
31. Start
Do roboty
Dokumentacja
Biblioteki
Społeczność
Idiomy
Co dalej?
www.python.org
docs.python.org
oficjalny tutorial
(nieoficjalnych też pełno; jeden z lepszych: ”Dive into
Python”)
global module index
kilka HOWTO
help() w konsoli!
Google is your friend, Luke
Konrad Delong Wstęp do Pythona
32. Start
Do roboty
Dokumentacja
Biblioteki
Społeczność
Idiomy
Co dalej?
Społeczność
Blogi
Grupy dyskusyjne
irc
Pykonik
Konrad Delong Wstęp do Pythona
33. Start
Do roboty
Dokumentacja
Biblioteki
Społeczność
Idiomy
Co dalej?
FIN
Konrad Delong Wstęp do Pythona