{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "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." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Proč Python?\n", "Python je dnes jedním z nejoblíbenějších jazyků vůbec (1. na [Tiobe index](https://www.tiobe.com/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ě!\n", "\n", "\n", "## Základní vlastnosti Pythonu\n", "\n", "* *Dynamicky typovaný* jazyk.\n", "* *Silně typovaný* (strongly typed) jazyk.\n", "* Čistě *interpretovaný* jazyk, který běží ve vlstním virtuálním stroji (VM - Virtual Machine).\n", "* Obsahuje *garbage collector*, který využívá *reference counting*.\n", "* Obsahuje *rozsáhlou vestavěnou knihovnu* modulů a funkcí.\n", "* *Svobodná licence* (Python Software Foundation License -- [PSFL](http://docs.python.org/2/license.html))." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Filozofie Pythonu\n", "Filozofie (Zen) a vlastnosti Pythonu jsou založeny na\n", "\n", "* co nejjednodušší a čitelné syntaxi,\n", "* více programovacích stylů (paradigmat): objektově orientované programování, strukturované programování, funkcionální programování, aspektově orientované programování,\n", "* rošiřitelnosti,\n", "* silných konvencích (které jsou často přednější než samotná sytaxe).\n", "\n", "Více najdete v [PEP 20 -- The Zen of Python](http://www.python.org/dev/peps/pep-0020/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Takto vypadá \"Hello world! v Pythonu" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hello world!\n" ] } ], "source": [ "print(\"Hello world!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Historie \n", "Historie sahá do roku 1980, implementaci zahájil v roce 1989 [Guido Van Rossum](http://www.python.org/~guido/). 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](https://peps.python.org/pep-8016/) a [Python Software Foundation](https://www.python.org/psf-landing/). Vydání Pythonu v datumech:\n", "\n", "* Python 1.0 - 1994\n", " * Python 1.6 - 2000\n", "* Python 2.0 - 2000\n", " * Python 2.7 - 2010\n", "* Python 3.0 - 2008\n", " * Python 3.12 - 2023\n", " \n", "## Python 2 vs. 3\n", "\n", "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.\n", "\n", "## Další Pythony\n", "\n", "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](https://www.python.org/). Ostatní implementace se k němu vztahují a snaží se o kompatibilitu.\n", "\n", "* [PyPy](http://pypy.org/) - implementace Pythonu v... Pythonu, která může být díky JIT kompilaci rychlejší než CPython.\n", "* [MicroPython](http://micropython.org/) - implementace Pythonu pro mikrokontroléry, která je dostatečně malá a rychlá pro využití v embedded systémech.\n", "* [Pyodide](https://pyodide.org/) - Python v prohlížeči, který běží na WebAssembly. Tak mohly nedávno vzniknout velice zajímavé projekty jako [JupyterLite](https://github.com/jupyterlite/jupyterlite) nebo [PyScript](https://pyscript.net).\n", "* [Jython](http://www.jython.org/) - implementace Pythonu v Javě, která umožňuje používat objekty (a knihovny) Javy z Pythonu.\n", "* [IronPython](http://ironpython.net/) - implementace Pythonu pro .NET, která umožňuje využívat možnosti prostředí .NET.\n", "\n", "\n", "Celkem přehledné vysvětlení toho, co je který \"Python\" zač, nalezenete v článku [Why are there so many Pythons?](http://www.toptal.com/python/why-are-there-so-many-pythons)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }