2. Stručný ú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.
2.1. Proč Python?#
Python je dnes jedním z nejoblíbenějších jazyků vůbec (1. na Tiobe index v únoru 2024). Je jasně nejvíce používaným jazykem pro data science a 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).
2.2. 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!")
Hello world!
2.3. Historie#
Historie sahá do roku 1980, implementaci zahájil v roce 1989 Guido Van Rossum. Ten byl donedávna hlavní postavou (tzv. Benevolent Dictator for Life—BDFL) Python komunity. V současnosti dohlíží nad vývojem Pythonu Python Steering Council a Python Software Foundation. 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.12 - 2023
Python 2 vs. 3#
Python 3 napravil některé neduhy, které vypluly na povrch v Pythonu 2 – viz http://docs.python.org/3.0/whatsnew/3.0.html. V současnosti je Python 3 jediná aktivně podporovaná a používaná verze jazyka Python. Není ani potřeba vědět o rozdílech mezi Pythonem 2 a 3.
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.
PyPy - implementace Pythonu v… Pythonu, která může být díky JIT kompilaci rychlejší než CPython.
MicroPython - implementace Pythonu pro mikrokontroléry, která je dostatečně malá a rychlá pro využití v embedded systémech.
Pyodide - Python v prohlížeči, který běží na WebAssembly. Tak mohly nedávno vzniknout velice zajímavé projekty jako JupyterLite nebo PyScript.
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.
Celkem přehledné vysvětlení toho, co je který “Python” zač, nalezenete v článku Why are there so many Pythons?.