Przegląd języka Python Łukasz Anwajler lukasz.anwajler@pjwstk.edu.pl
Nie wierzcie mi na słowo Zaraz zobaczymy: czym jest Python dlaczego warto go używać jakie ma zastosowania gdzie z niego korzystają jakzacząć w nim programować
Bardzo krótka historia Pythona Lata 90 twórca Guido van Rossum słowo klucz: BenevolentDictatorfor Life (BDFL)(dobrowolny, dożywotni dyktator) Do v. 1.2wydawany w Centrum Matematyki i Informatyki w Amsterdamie Od v. 1.6 Pythonjest na licencji GPL(jupi!) Od v 2.1własność PythonSoftware Foundation(PSF)
Pythonto język interpretowany... Czyli? kod jest analizowanyi bezpośrednio wykonywany wolniejszyod jęz. kompilowanych kod analizowany za każdym razem używa kodu bajtowego(ang. bytecode)
Pythonto język interpretowany c.d. Mamy nawet interaktywny interpreter:
Pythonto język interpretowany c.d Chcesz spróbować sam? Zaloguj się na swoje konto uczelniane i wpisz python lub Skorzystaj z interaktywnego interpretera Pythonaprzez specjalną bramkę: http://try-python.mired.org/
Pythonjest przenośny Linux Unix Mac OS X Windows urządzenia wbudowane telefony komórkowe i smartphone y
Implementacje Pythona CPython (C) standardow Python IronPython(.NET) Jython(Java) PyPy(Python)
IronPython(.NET) -przykład
IronPython(.NET) przykład c.d.
Jython(Java) -przykład
Cechy języka Python czytelny kod wiele paradygmatów dynamiczne typy garbage collection wartości przekazywane przez referencję wszystko jest obiektem (no, może nie tak jak Smalltalk ;) brak enkapsulacji
Czytelny kod na co nam to? 80% czasu czytamykod Nie pozwala nam się zgubić we własnym kodzie Nie musimy pilnować innych programistów Bez kwiatków w stylu Perla: open(q,$0);while(<q>){if(/^#(.*)$/){for(split('- ',$1)){$q=0;for(split){s/\
Czytelny kod: obowiązkowe wcięcia Każde wcięcie to 4 spacje.
Python: Wiele paradygmatów Paradygmatto przyjęty sposób widzenia rzeczywistości w danej dziedzinie Python korzysta z trzech z nich jednocześnie. Możemy pisać w sposób: Funkcyjny (jak Haskell) Imperatywny (jak C) Obiektowy (jak Smalltalk)
Python: paradygmat funkcyjny Podstawowym elementem są funkcjea nie wartości Brak lub ograniczenie przypisań i zmiennych
Python: paradygmat obiektowy
Python: paradygmat imperatywny
Python: dynamiczne typy
Python: dynamiczne typy c.d
Python: słowa kluczowe and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda trys
Python: typy danych Zmienne Integer, floating point, string, unicode, complex, bool Kolekcje: Listy [1, 26, a, 3.5] Krotki (2, "a", 3) Słowniki { klucz : wartość, inny : 5} Zbiory >>> set([1,1,1,2,2,2,3,3,4,4,4,4,4]) set([1, 2, 3, 4])
Python: listy list.append(x) list.extend(l) list.insert(i, x) list.remove(x) list.pop([i]) list.reverse() list.sort()
Python: słowniki
Python: pętle FAŁSZ to: liczba zero (0, 0.0, 0e0, 0j, itp.) False None(null) puste kolekcje :(,),[],{}, itp. puste napisy obiekty posiadające metodę nonzero (), jeśli zwraca ona Falselub 0
Python: pętla for
Python: pętla while
Python: instrukcje warunkowe
Porównanie z innymi językami
Porównanie z innymi jęzkami
Porównanie z innymi językami
Porównanie z innymi językami
Zastosowania Skryptowanie systemu Graficzne aplikacje desktopowe (GTK, wx) Aplikacje webowe (CGI, mod_python) Sklejanie innych języków
Python graficzne aplikacje Pakiet Python+GTK Środowisko Glade desktopowe Skryptowanie Gnome a(w tym Nautiliusa) Python+ Zenity bardzo proste pisanie okienek
Python skryptowaniesystemu Ogromne możliwości Obsługa z palca przy użyciu interaktywnego interpretera i wiele innych
Python skryptowaniesystemu
Python aplikacje webowe Python/Apache: FastCGI Mod_python
Znajdź Pythona GIMP, Mailman, Mercurial, MoinMoin Gnome, Portage, Epiphany, gedit, Vim Bazaar, Trac, Totem BitTorrent, Yum, Rhythmbox Blender, Civilization 4 Gajim, CherryPy, Django, Pylons, Zope Google, NASA,