Úvod
Cílem kurzu je seznámit se s programovacím jazykem Python, zejména s jeho praktickým využitím pro vědecké a inženýrské účely.
Proč Python?¶
Python je dnes jedním z nejoblíbenějších jazyků vůbec (8. na Tiobe index v srpnu 2013). Ve vědecké a inženýrské komunitě hraje čím dál důležitšjší úlohu. Nutno říci, že zaslouženě!
Základní vlastnosti Pythonu¶
- Dynamicky typovaný jazyk.
- Silně typovaný (strongly typed) jazyk.
- Čistě interpretovaný jazyk, který běží ve vlstním virtuálním stroji (VM - Virtual Machine).
- Obsahuje garbage collector, který využívá reference counting.
- Obsahuje rozsáhlou vestavěnou knihovnu modulů a funkcí.
- Svobodná licence (Python Software Foundation License -- PSFL).
a = 1 # dynamicky typovaná proměnná
print("a = %i, type(a) = %s" % (a, type(a)))
a = eval("a + 1") # příkaz eval dokáže vyhodnotit libovolný řetězec
print("a = %i" % a)
try:
a + "1" # chyba - silně typovaný jazyk
except Exception as e:
print("Chyba: %s" % e)
Filozofie Pythonu¶
Filozofie (Zen) a vlastnosti Pythonu jsou založeny na
- co nejjednodušší a čitelné syntaxi,
- více programovacích stylů (paradigmat): objektově orientované programování, strukturované programování, funkcionální programování, aspektově orientované programování,
- rošiřitelnosti,
- silných konvencích (které jsou často přednější než samotná sytaxe).
Více najdete v PEP 20 -- The Zen of Python
Takto vypadá "Hello world! v Pythonu¶
print("Hello world!")
Historie¶
Historie sahá do roku 1980, implementaci zahájil v roce 1989 Guido Van Rossum. Ten je v současnosti stále hlavní postavou (tzv. Benevolent Dictator for Life---BDFL) Python komunity, i když donedávna pracoval pro Google a v současnosti pro Dropbox. Více např. na wikipedii. Vydání Pythonu v datumech:
- Python 1.0 - 1994
- Python 1.6 - 2000
- Python 2.0 - 2000
- Python 2.7 - 2010
- Python 3.0 2008
- Python 3.3 - 2012
Python 2 vs. 3¶
Python 3 se snaží o nápravu některých neduhů, které vypluly na povrch v Pythonu 2 -- viz http://docs.python.org/3.0/whatsnew/3.0.html. Některé tyto změny ovšem přinášejí zpětnou nekompatibilitu, tj. programy, které fungují v Pythonu 2, nemusí fungovat v Pythonu 3. Nejdůležitější změny se týkají
- Příkaz
print
je v Pythonu 3 funkce --> musí se používatprint(...)
. -
raw_input
odpovídá v Pythonu 3input
. - Dělení pomocí
/
je v Pythonu 3 vždy s desetinnou čárkou --> 1 / 2 = 0.5.
Pro co nejplynulejší přechod jsou tyto rozdíly zpětně implementovány v Pythonu 2.7, a to buď přímo nebo prostřednictvím modulu future
. Dále je k dispozici program 2to3
, který upozorňuje na problémy ve zdrojových kódech.
V tomto kurzu používáme Python 3, na rozdíly s Pythonem 2 budeme (občas) upozorňovat.
Další Pythony¶
Python jakožto jazyk je jeden, existuje však více implementací jeho interpreteru (t.j. programu, který zpracovává a vykonává příkazy). Referenčním interpreterem je v C napsaný CPython, dostupný z www.python.org. Ostatní implementace se k němu vztahují a snaží se o kompatibilitu (bývají na úrovni 2.6/2.7), nabízejí vždy něco navíc. Namátkou:
- Jython - implementace Pythonu v Javě, která umožňuje používat objekty (a knihovny) Javy z Pythonu
- IronPython - implementace Pythonu pro .NET, která umožňuje využívat možnosti prostředí .NET
- PyPy - implementace Pythonu v... Pythonu
Celkem přehledné vysvětlení toho, co je který "Python" zač, nalezenete v článku Why are there so many Pythons?.
Komentáře
Comments powered by Disqus