Ú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).
In [1]:
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)
a = 1, type(a) = <class 'int'>
a = 2
Chyba: unsupported operand type(s) for +: 'int' and 'str'

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

In [2]:
print("Hello world!")
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žívat print(...).
  • raw_input odpovídá v Pythonu 3 input.
  • 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