wprowadzenie do pythona
DESCRIPTION
TRANSCRIPT
![Page 1: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/1.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
Wstęp do Pythona
Konrad Delong
5 listopada 2008, Akademia Górniczo-Hutnicza
Konrad Delong Wstęp do Pythona
![Page 2: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/2.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
Dzień dobry
Kto mówi?
AGH, Python
Studencki Festiwal Informatyczny, Pykonik
Pykonik Jutro!
http://konryd.blogspot.com
Konrad Delong Wstęp do Pythona
![Page 3: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/3.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
Dzień dobry
Kto mówi?
AGH, Python
Studencki Festiwal Informatyczny, Pykonik
Pykonik Jutro!
http://konryd.blogspot.com
Konrad Delong Wstęp do Pythona
![Page 4: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/4.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
Audiencja docelowa
Do kogo?
Osoby nieznające Pythona, (nawet niekoniecznie umiejąceprogramować)
Konrad Delong Wstęp do Pythona
![Page 5: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/5.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
Cel
Po co?
Przedstawić
Wyjaśnić
Zaciekawić
Dla studentów I roku na AGH: pokazać Pythona zanimdziekan pokaże ruby’ego
Konrad Delong Wstęp do Pythona
![Page 6: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/6.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
Cel
Po co?
Przedstawić
Wyjaśnić
Zaciekawić
Dla studentów I roku na AGH: pokazać Pythona zanimdziekan pokaże ruby’ego
Konrad Delong Wstęp do Pythona
![Page 7: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/7.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
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 i3.0
Alternatywne implementacje
Łączący paradygmaty programowania: strukturalny, obiektowyi funkcyjny
Konrad Delong Wstęp do Pythona
![Page 8: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/8.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
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
![Page 9: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/9.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
IntroWstęp do wstępu
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
![Page 10: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/10.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
if
if a == b:print "NOWAI! Takie same!"
# a tutaj jest komentarz
Konrad Delong Wstęp do Pythona
![Page 11: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/11.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
if..else
if a == b:print "NOWAI! Takie same!"
else:print "A jednak nie!"
# i jeszcze jeden komentarz
Konrad Delong Wstęp do Pythona
![Page 12: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/12.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
while
a = 10while a > 0:print aa = a / 2
# wypisze 10, 5, 2, 1
Konrad Delong Wstęp do Pythona
![Page 13: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/13.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
for..in
for a in (10, 5, 2, 1):print a
for i in range(3): # 0, 1, 2print i
Konrad Delong Wstęp do Pythona
![Page 14: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/14.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
do..while
NI MA
Konrad Delong Wstęp do Pythona
![Page 15: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/15.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
try..except
try:a = 1 / b
except ZeroDivisionError:print "Nie dziel przez zero"
Konrad Delong Wstęp do Pythona
![Page 16: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/16.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
funkcje
def is_it_monday(day):if day == "Monday":return True
else:return False
print is_it_monday("Tuesday")
Konrad Delong Wstęp do Pythona
![Page 17: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/17.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
lambda
def twice(x):return 2 * x
# to samo
twice = lambda x: 2 * x
Konrad Delong Wstęp do Pythona
![Page 18: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/18.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
klasy
class Dog(object):def speak(self):print "Hau!"
burek = Dog()burek.speak()
Konrad Delong Wstęp do Pythona
![Page 19: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/19.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Struktury danych
Tablice haszujące, Funkcje haszujące
Konrad Delong Wstęp do Pythona
![Page 20: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/20.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Struktury danych
Zrobione raz. Zrobione dobrze.
Literały – czytelność.
Lista
Krotka
Słownik
Zbiór
Konrad Delong Wstęp do Pythona
![Page 21: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/21.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Listy
[1, "blah!", 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
![Page 22: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/22.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Krotki
(1, "blah!", 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
![Page 23: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/23.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Słowniki
{1: 2, "asdf": 3, (3, 4): "a tutaj krotka"}
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
![Page 24: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/24.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Słowniki
{1: 2, "asdf": 3, (3, 4): "a tutaj krotka"}
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
![Page 25: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/25.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Zbiory
set([1, 2, "asdf"]) # 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
![Page 26: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/26.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Moduły
DEMO
Konrad Delong Wstęp do Pythona
![Page 27: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/27.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
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 thanthe wild-card form?YODA: Know you will when your code you try to read six monthsfrom now.
Konrad Delong Wstęp do Pythona
![Page 28: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/28.jpg)
StartDo robotyBibliotekiIdiomy
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
![Page 29: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/29.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
kwiatki
b, a = a, b # swap
pair = ("John", "Doe") # unpackingfirst, last = name
# list comprehensions[2 * x for x in range(3)] # == [0, 2, 4]
# string formattingprint "a is %s and b is %s" % (a, b)
Konrad Delong Wstęp do Pythona
![Page 30: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/30.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
skrypty
if __name__ == ’__main__’:print "I am run as a script, not imported!"
Konrad Delong Wstęp do Pythona
![Page 31: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/31.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
DokumentacjaSpołeczność
www.python.org
docs.python.org
oficjalny tutorial
(nieoficjalnych też pełno; jeden z lepszych: ”Dive intoPython”)
global module index
kilka HOWTO
help() w konsoli!
Google is your friend, Luke
Konrad Delong Wstęp do Pythona
![Page 32: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/32.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
DokumentacjaSpołeczność
Społeczność
Blogi
Grupy dyskusyjne
irc
Pykonik
Konrad Delong Wstęp do Pythona
![Page 33: Wprowadzenie do Pythona](https://reader034.vdocuments.net/reader034/viewer/2022051209/5482ce67b079591a0c8b4866/html5/thumbnails/33.jpg)
StartDo robotyBibliotekiIdiomy
Co dalej?
DokumentacjaSpołeczność
FIN
Konrad Delong Wstęp do Pythona