Podstawy
Instalacja i edytor Czym jest Python Dlaczego używamy Python?
Wcięcia Typy danych Deklaracje i dynamiczne typowanie Komentarze Operatory Nazewnictwo Operacje na łańcuchach Print
WYKŁAD 1 INSTALACJA
http://www.python.org/download pypi.python.org/pypi
http://vpython.org/index.html https://www.djangoproject.com http://effbot.org
Dokumentacje:
http://docs.python.org/library http://django.pl
http://pl.python.org
http://www.python.rk.edu.pl
Dlaczego wersja 2.7
Stabilne wersje (w chwili obecnej) PYTHONA 2.7.2 i 3.2.2 Biblioteki - pypi.python.org/pypi/
Django 1.3.1 Python 2.5-2.7
Matplotlib 1.1.0 Python 2.5-2.7 wersje 32 i 64 bitowe Numpy 1.6.1 Python 2.5-2.7 3.1-3.2
PIL 1.1.7 Python 2.3-2.7
(http://effbot.org/downloads/#Imaging) VPython Python 2.6, 2.7, 3.1
Plone 4.x Python 2.6 i Zope 2.12.x PyQT4 Python 2.5,2.6,2.7,3.1,3.2
Klasyfikacja języków
Imperatywne (Python, Java, C++)
Deklaratywne (Prolog, Haskell)
Obiektowe (Java, C++, Python)
Strukturalne
Funkcyjne (Haskell ,F)
Wysokiego poziomu (Java, C++, Python)
Niskiego poziomu (assembler, C (?))
język programowania Java C++
język znaczników LATEX HTML
język skryptowy Python Perl
Historia PYTHONa
Pythona stworzył latach 90. Guido van Rossum
G. V. Rossum - „Benevolent Dictator for Life”
(BDFL).
Do wersji 2.0 Python był opracowywany w BeOpen potem PythonLabs przeniósł się do Digital Creations.
Własność intelektualna począwszy od Pythona 2.1
(wraz z wersjami alpha i beta), jest własnością
Python Software Foundation (PSF), niedochodowej
organizacji wzorowanej na Apache Software
Foundation
Czym jest Python?
Interpretowalnym językiem skryptowym o ogromnej liczbie różnorodnych bibliotek.
Użyteczny do tworzenia frameworków
sieciowych i innych operacji w internecie.
Dużo narzędzi przetwarzania zbiorów tekstowych.
Dużo użytecznych wbudowanych typów (listy, krotki, słowniki).
Jasna przejrzysta struktura języka, ogromna siła i ekspresja języka.
Duża ilość wersji na różne urządzenia – telefony komórkowe, ipady …
Dlaczego Python?
Przenośność. PYTHON działa na prawie każdym systemie operacyjnym
Integracja. PYTHON może zostać zintegrowany z różnymi
obiektami. Istnieje implementacja na platformę JAVA, (JYTHON) może zawierać kod C czy C++.
Prostota. Łatwo jest pisać, kod jest czytelny, dzięki czemu wyszukiwanie błędów staje się prostsze
Możliwości. Ubogi standard i bardzo bogate biblioteki.
Elastyczność. PYTHON jest jednym z najbardziej elastycznych programów. Łatwo jest zacząć szybko tworzyć kod i po kolei go rozszerzać.
Open-source. PYTHON jest językiem darmowym i za darmo można go używać i dystrybuować. Ma on otwarty kod źródłowy.
Platformy PYTHONA
Python (x,y)
Python w Eclipsie (tylko 2.7) plugin
PyDev - Python IDE for Eclipse 2.4.0
Python w Netbeansach
PyQT – interfejs graficzny
PyGtk – interfejs graficzny
Mniej znane - Kate (KDE4), OpenKomodo,
MonoDevelop
1 CECHA CHARAKTERYSTYCZNA - WCIĘCIA
a=5
if a>3:
if 4<5:
print 2 else:
print 3 else:
print 4
print 5
a=5
if a>3:
if 4<5:
print 2 else:
print 3 else:
print 4
print 5
Wcięcia
Puste spacje są potężnym narzędziem Pythona:
szczególnie wcięcia i nowe linie.
Używaj ENTER kończąc polecenia.
(Nie średnika jak w C++ lub Javie.)
(Używaj \ kiedy musisz przenieść linię.)
Nie używaj { } do oznaczania bloków kodu – to słownik. W zamian używaj wcięć. Pierwsza linia z dodatkowym wcięciem jest traktowana jak
początek bloku
Często dwukropek pojawia się jako początek
nowego bloku (if :, class :)
2 CECHA CHARAKTERYSTYCZNA - BRAK DEKLARACJI
Python wyznacza typy danych
automatycznie. “Dynamiczne Typowanie”
Ale Python nie narzuca tych typów, on je wymusza. “Silne Typowanie”
Więc, na przykład, możesz dodać liczbę całkowitą do
łańcucha. Ale musisz najpierw przekształcić liczbę całkowitą w sam łańcuch.
x = “the answer is ” # decyzja - x to łańcuchem y = 23 # decyzja - y to integer.
print x + y # Python wyświetli błąd.
3 CECHA – DYNAMICZNE
GOSPODAROWANIE PAMIĘCIĄ
a,b,c=2,”As”,[1,2,3]
b,a=a,b # a=‘As’ b=2 d=c
c[1]=0
print d # [1, 0 , 3]
d=[2,4,5]
c.append(d) # c=[1,0,3,[2,4,5], […]]]
d.append(c) # d=[2,4,5,[1,0,3], […]]]
d[3][3] # [2,4,5,[1,0,3], […]]]
del c
Garbage collection
a=5 b=a
c=[1,5]
d=c
d[1]=4
Usuwanie del d
del c
a=„www”
b=[2,8]
4 cecha charakterystyczna – elegancja i przyjazny kod
x = 34 - 23 # Komentarz.
y = ‘Hello’ # Inny komentarz
z = 3.45
if z == 3.45 or y ==
‘Hello’:
x = x + 1
y = y + “ World” # Łączenie łańcuchów
print x print y
x = 34 - 23 # Komentarz
y = “Hello” # inny
z = 3.45
if z == 3.45 or y ==
“Hello”:
x = x + 1
y = y + “ World” # łączenie
print x print y
Komentarze
Komentarz zaczyna się od # pozostałe znaki do końca linii sa ignorowane.
Można włączyć “docstring” jako pierwszą linię dowolnej funkcji lub klasy.
Używaj debuggera i inne narzędzia –
używaj je!: w dobrym tonie jest włączyć je do programu.
def my_function(x, y):
“““To jest docstring.
Ta funkcja robi ... ”””
# Kod funkcji będzie tu...
Nazewnictwo
Wielkość liter w nazwach jest istotna.Nazwy nie mogą się zaczynać od cyfry. Mogą zawierać litery, cyfry i znak podkreślenia.
Tomek tomek _tomek _2_tomek_
tomek_2 TomeK
To są zarezerwowane słowa Pythona:
and, assert, break, class,
continue, def, del, elif, else, except, exec, finally, for, from, global, if, import, in, is,
lambda, not, or, pass, print,
raise, return, try, while
Dostęp do nie istniejącej nazwy
Dostęp do nazwy, która nie istnieje spowoduje sygnalizację błędu
>>> y
Traceback (most recent call last):
File "<pyshell#16>", line 1, in -toplevel- y
NameError: name ‘y' is not defined
>>> y = 3
>>> y 3
W przypadku kodowania
Podstawienie = porównanie ==.
Wśród liczb używamy +-*/% .
◦Szczególne użycie + dla łączenia łańcuchów.
◦Szczególne użycie % dla formatowania łańcuchów.
Logiczne operatory są słowami (and, or, not) nie symbolami (&&, ||, !).
Podstawową instrukcją drukowania jest “print”
Pierwsze podstawienie pod zmienną tworzy ją.
◦Zmienne nie muszą być deklarowane.
◦Python dowiaduje się o typach zmiennych od nich samych.
Wielokrotne
przyporządkowania
Można używać wielokrotnych podstawień.
>>> x, y = 2, 3
>>> x 2
>>> y 3
>>> x, y=y, x Inne konstrukcje
>>> x++ (niedopuszczalne)
>>> x+=1
>>> y*=3+y
5 CECHA
CHARAKTERYSTYCZNA -bogactwo typów danych
None
Integer (domyślny dla liczb)
z = 5 / 2 # Odpowiedzią jest 2!
Float
x = 3.456
String (basestring, str, unicode)
Można używać ”” lub ‘’ np “abc” ‘abc’
Jeden łańcuch może się pojawić w drugim “To John’s”
Potrójne łańcuchy używamy dla wielolinijkowych łańcuchów “““a‘b“c”””
Inne typy danych
Bool a=True
Long (w wersji Pythona 3.x tego typu nie ma) x=1234612974369L
Complex – liczby zespolone x=2.7-3.25e-3j
Listy
x=[1, ‘a’, [3,(3,2-j)], {1:’a’}]
Słowniki
x={(1,2,’a’):[3,’s’,8.2e-2], ‘a’:2j}
Krotki
x=(2,5,’a’,(3,1),[1],{})
JESZCZE INNE TYPY DANYCH
Zbiory mutowalne (set) a=set([’a’,’b’,3,4])
Zbiory niemutowalne (frozenset) a=frozenset([8,’a’,set([‘0’,0]),9])
Wektory i tablice (biblioteka array) import array
c=array.array(’d’,[1.0,3.14,6.59])
Ułamki (biblioteka fractions) from fractions import Fraction
a=Fraction(1, 10) – Fraction(3, 5)
OPERATORY
Operacje arytmetyczne
x+y, x-y, x*y, x/y, x//y, x%y, -x, x**y
Operacje bitowe
x|y, x^y, x&y, x<<n, x>>n, ~x
Operatory
< <= > >= == != <> is is not