wprowadzenie do pythona
DESCRIPTION
TRANSCRIPT
StartDo robotyBibliotekiIdiomy
Co dalej?
Wstęp do Pythona
Konrad Delong
5 listopada 2008, Akademia Górniczo-Hutnicza
Konrad Delong Wstęp do Pythona
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
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
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
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
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
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
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
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
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
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
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
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
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
do..while
NI MA
Konrad Delong Wstęp do Pythona
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
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
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
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
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
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
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
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
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
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
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
StartDo robotyBibliotekiIdiomy
Co dalej?
SkładniaStruktury danychSystem modułów i przestrzenie nazw
Moduły
DEMO
Konrad Delong Wstęp do Pythona
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
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
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
StartDo robotyBibliotekiIdiomy
Co dalej?
skrypty
if __name__ == ’__main__’:print "I am run as a script, not imported!"
Konrad Delong Wstęp do Pythona
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
StartDo robotyBibliotekiIdiomy
Co dalej?
DokumentacjaSpołeczność
Społeczność
Blogi
Grupy dyskusyjne
irc
Pykonik
Konrad Delong Wstęp do Pythona
StartDo robotyBibliotekiIdiomy
Co dalej?
DokumentacjaSpołeczność
FIN
Konrad Delong Wstęp do Pythona