Kurs języka Python Wykładowca: Marcin Młotkowski konsultacje: czwartek 12:15­14:00, pok. 303 Termin wykładu: czwartek, 09:15­10:00 Strona wykładu: www.ii.uni.wroc.pl/~marcinm/dyd/python/ Materiały źródłowe ● www.python.org ● “Dive into Python” ● Internet ● Książki Pracownia ● Pierwsza połowa semestru: listy krótkich zadań programistycznych ● Druga połowa semestru: większy projekt ● Zaliczenie: zdobycie połowy punktów. Plan kursu ● ● ● ● ● ● ● ● Składnia, typy podstawowe Wbudowane struktury danych Programowanie obiektowe Konstrukcje funkcjonalne Standardowe biblioteki Interfejsy graficzne Zastosowania (http, html) Testowanie i dokumentowanie Autor ● ● Guido van Rossum, CWI Amsterdam Benevolent Dictator for Life (BDFL) Python – stan obecny ● ● Aktualna wersja: 2.5 Rozwijany przez Python Software Foundation Dlaczego Python jest fajny Prosta i czytelna składnia: • Niewielka liczba słów kluczowych i operatorów • Wymuszenie stosowania wcięć: def silnia(x): if x == 0: return 1 else: return x * silnia(x­1) Dlaczego Python jest fajny (cd) Implementacja różnych paradygmatów: ● Paradygmat programowania strukturalnego ● Pardygmat programowania obiektowego ● Paradygmat programowania funkcjonalnego Dlaczego Python jest fajny (cd) Wbudowane typy: ● Listy vec = [1, 2, 3] doubled_vec = [ 2*e for e in vec] ● Słowniki tel = { 'krzysiek' : 235711, 'ewa' : 246810 } print tel['ewa'] Dlaczego Python jest fajny (cd) Batteries included: Biblioteki operacji we/wy ● Obsługa wyrażeń regularnych ● HTTP, HTML, XML ● Interfejsy okienkowe (pyGTK, wxPython, Tkinter) ● ... ● ... ● Inne cechy Pythona ● Dynamiczny system typów >>> 2 + "dwa" Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> Zastosowania/projekty ● Narzędzia systemowe (RedHat) ● Google ● NASA ● ZOPE/PLONE ● .... Python – tryb interaktywny Tryb interaktywny: $ python >>> 2+2 4 >>> [1,2,3][­1:] [3] Ctrl­d $ Tryb wsadowy $ python plik.py ● ● ● Kompilacja programu W wypadku modułów tworzony jest plik.pyc – skompilowany wieloplatformowy moduł Wykonanie programu Składnia ● Przypisanie cztery = 2 + 2 x = y = z = 0 nazwa = 'Pyt' + 'hon' pierwsze = [2, 3, 5, 7] a, b = b, a+b Instrukcja warunkowa x = 4 if x % 2 == 0: print "parzysta" print "x = ", 2 x = 4 if x % 2 == 0: print "parzysta" print "x = ", 2 Instrukcja warunkowa, cd x = 400 if x % 2 == 0: if x > 100: print "duza parzysta" elif 10 < x <= 100: print “nieduza parzysta” else: print "mala parzysta" Wyrażenia logiczne ● Fałsz: 0, False, None, [], {} ● Prawda: True, wartości niepuste ● Spójniki: and, or, not ● Operatory: ==, !=, 1 < x < 2 Pętla while Pętla while: a, b = 0, 1 while b < 10: print b a, b = b, a + b Pętla for a = [1,2,3,4] for e in a: print e print “koniec” Pętla for, cd “Prawdziwa” pętla suma = 0 for i in range(100): suma = suma + i print “suma=”, suma Inne instrukcje ● ● Instrukcje break i continue Instrukcja pusta pass while (True): pass Procedury i funkcje def funkcja(arg1, arg2=1, arg3=[]): print arg1, arg2, arg3 return 4 funkcja(“jeden”, , [3]) print funkcja(1, 2, 3) Komentarze def fun (arg): ””” To jest bardzo wazna funkcja uzywac z wielka ostoznoscia””” # koniec gdy argument pusty if arg == None: return return arg Kilka porad ● Edytory z podświetleniem składni: vim, gedit, emacs ● Pliki “wykonywalne” i polskie litery; plik.py: #!/usr/bin/python # ­*­ coding: iso­8859­2 ­*­