Search
Gitlab - podklady pro Cvičení 1
Dokumentace jazyka Python
Download - Visual Studio Code
Download - Python
Mnoho operačních systémů, včetně macOS a Linuxu, obsahuje předinstalovaný Python. Verze Pythonu dodávaná s operačním systémem se nazývá systémový python.
Systémový Python je používán operačním systémem a je obvykle zastaralý. Je nezbytné, abyste měli nejnovější verzi Pythonu abyste mohli úspěšně postupovat podle příkladů v tomto předmětu.
V počítači můžete mít nainstalováno více verzí jazyka Python. V této lekci nainstalujete nejnovější verzi Pythonu 3 paralelně se systémovým Pythonem, který již na vašem počítači může existovat.
Systém windows se obvykle nedodává se systémovým Pythonem. Instalace naštěstí nezahrnuje nic víc než stažení a spuštění instalačního programu Pythonu z webových stránek Python.org
Krok 1: Stažení instalačního programu Python3:
Otevřete webový prohlížeč a přejděte na následující URL adresu: Python Releases for Windows
Klikněte na 'Latest Python 3 Release - Python 3.x.x', které se nachází pod nadpisem 'Python Releases for Windows' v horní části stránky.
Poté přejeďte na konec a kliknutím na instalační soubor Windows x86-64 spusťte stahování.
systeminfo
System type
Krok 2: Spuštění instalačního programu:
Otevřete stažené soubory v Průzkumníku Windows a poklepáním na soubor spusťte instalační program. Zobrazí se dialogové okno, které vypadá následovně:
Add Python 3.x to PATH
Kliknutím na tlačítko Install now nainstalujete Python 3. Počkejte na dokončení instalace.
Install now
Krok 3: IDE
Je možné použít vývojové prostředí dle vašich preferencí:
V interaktivním režimu zadáváte kód přímo do interpretu jazyka Python. To je užitečné pro zkoušení malých fragmentů kódu nebo pro testování věcí během jejich psaní. Do interaktivního režimu lze vstoupit pomocí softwaru IDLE (Interactive Development and Learning Environment) nebo zadáním příkazu `> python` do příkazové řádky.
V režimu skriptování napíšete kód do souboru .py a spustíte jej příkazem Python. Jedná se o nejběžnější způsob, jakým lidé používají Python, protože umožňuje psát a ukládat kód, abyste ho mohli později použít znovu.
Otevřete vámi vybrané IDE a vytvořte novou složku, např. `lec01`. Pro VS code lze použít následující PowerShell příkazy:
> mkdir lec01 > cd .\lec01\ > code .
Vytvořte nový soubor hello_world.py:
hello_world.py
# lec01 - hello_world.py print("Hello, World!")
Skript můžete spustit dvěma způsoby:
> python .\hello_world.py
Run Python file
Každý dělá chyby - zejména při programování. Pokud jste ještě žádnou chybu neudělali, pojďme něco schválně pokazit, abychom věděli, co se stane.
Nejčastěji se setkáte se dvěma hlavními typy chyb: syntaxe a runtime chybami.
Chyby syntaxe:
Chyba syntaxe nastane, když napíšete kód, který není v jazyce Python povolen.
Vytvořme chybu syntaxe odstraněním poslední uvozovky z kódu v souboru hello_world.py:
# lec01 - hello_world.py print("Hello, World!)
Po spuštění skriptu by se měla vrátit chyba SyntaxError: unterminated string literal (detected at line 2). V překladu “Neukončený řetězcový literál”. Řetězcový literál je text uzavřený v uvozovkách. “Hello, World!” je řetězcový literál.
SyntaxError: unterminated string literal (detected at line 2).
“Hello, World!”
Runtime chyby:
VS Code je většinou schopný zachytit chyby syntaxe ještě před spuštěním programu. Naproti tomu runtime chyby se objevují až během běhu programu.
K vygenerování runtime chyby odstraňte obě uvozovky v souboru hello_world.py:
# lec01 - hello_world.py print(Hello, World!)
Po odstranění uvozovek se změnila barva textu “Hello, World!”. VS Code již nerozpoznává “Hello, World!” jako text. Po spuštění by se měla vrátit chyba NameError: name 'Hello' is not defined.
NameError: name 'Hello' is not defined
Kdykoli dojde k chybě, Python zastaví běh programu a zobrazí několik řádků textu, kterému se říká traceback. Traceback zobrazuje užitečné informace o chybě. Tracebacky je nejlepší číst zdola nahoru:
V této kapitole se budeme zabývat klíčovými koncepty modulů a balíčků v jazyce Python. Tyto mechanismy hrají klíčovou roli v modulárním programování, což je přístup k vývoji softwaru, kde se rozsáhlý úkol rozděluje na menší, snadněji spravovatelné moduly. Každý modul má svou specifickou funkci, a tyto moduly lze následně kombinovat a skládat dohromady, abychom vytvořili komplexní a dobře organizovanou aplikaci.
Modul v Pythonu je soubor obsahující Python kód, který může obsahovat proměnné, funkce a třídy. Tímto způsobem se zamezuje zaplavení globálního jmenného prostoru.
Zaplavení globálního jmenného prostoru v jazyce Python nastává, když mnoho proměnných a funkcí sdílí stejné jméno, což může vést k nechtěným konfliktům a nejasnostem v programu. Moduly předcházejí tomuto problému tím, že poskytují izolované jmenné prostory pro svůj obsah. Každý modul má vlastní kontext, ve kterém existují jeho proměnné a funkce, čímž minimalizuje riziko konfliktů a umožňuje programátorovi organizovat kód efektivněji a udržitelněji.
Psaní vlastního modulu:
Vytvoření vlastního modulu je snadné. Stačí vytvořit soubor s příponou .py a do něj umístit kód. Například, vytvořme modul s názvem utils.py:
.py
utils.py
# lec01 - utils.py def add_numbers(a, b): return a + b def multiply_numbers(a, b): return a * b
Nyní můžeme tento modul importovat do jiného souboru a používat jeho funkce:
# lec01 - hello_world.py import utils print("Hello, World") result_sum = utils.add_numbers(3, 5) result_product = utils.multiply_numbers(2, 4) print("Součet: ", result_sum) print("Součin: ", result_product)
Vestavěné moduly:
Python obsahuje mnoho vestavěných modulů, které poskytují širokou škálu funkcí. Například modul math poskytuje matematické funkce:
import math print(math.sqrt(16)) # Vypíše: 4.0 print(math.factorial(5)) # Vypíše: 120
Balíček je adresář, který obsahuje kolekci modulů. Tímto způsobem se organizují a hierarchicky uspořádávají moduly podle jejich funkce. Každý balíček musí obsahovat soubor init.py, který může být prázdný, ale označuje adresář jako balíček.
Struktura balíčku:
Struktura balíčku může vypadat následovně:
my_package/ |-- __init__.py |-- module1.py |-- module2.py |-- subpackage/ | |-- __init__.py | |-- module3.py
V tomto příkladu je my_package hlavní balíček obsahující dva moduly (module1.py a module2.py) a podbalíček subpackage, který obsahuje modul module3.py.
my_package
module1.py
module2.py
subpackage
module3.py
Importování modulu z balíčku:
Moduly z balíčku lze importovat několika způsoby. Například pro import modulu module1.py z balíčku my_package:
from my_package import module1 module1.some_function()
Pokud chcete importovat celý balíček, můžete použít:
import my_package my_package.module1.some_function()
Příklad balíčku:
Uvažujme balíček pro práci s geometrickými tvary:
# lec01 - shapes/__init__.py # Prázdný soubor, označuje, že 'shapes' je balíček.
# lec01 - shapes/circle.py import math def area(radius): return math.pi * radius**2 def circumference(radius): return 2 * math.pi * radius
# lec01 - shapes/rectangle.py def area(length, width): return length * width def perimeter(length, width): return 2 * (length + width)
Tímto způsobem můžeme importovat a používat funkce pro kruhy a obdélníky zvlášť:
# lec01 - geometry.py from shapes import circle, rectangle radius = 5 length = 4 width = 6 circle_area = circle.area(radius) circle_circumference = circle.circumference(radius) rectangle_area = rectangle.area(length, width) rectangle_perimeter = rectangle.perimeter(length, width) print("Kruh - Plocha:", circle_area, "Obvod:", circle_circumference) print("Obdélník - Plocha:", rectangle_area, "Obvod:", rectangle_perimeter)
PIP je nástroj pro instalaci a správu balíčků v jazyce Python. Jeho název pochází z anglického výrazu “Pip Installs Packages” a slouží k jednoduchému stahování a instalaci externích balíčků do vašeho Pythonového prostředí.
Instalace balíčků:
Pro instalaci balíčku pomocí PIPu stačí použít příkaz pip install. Například, chceme-li nainstalovat balíček requests, který se často používá pro HTTP požadavky, provedeme následující:
pip install
requests
pip install requests
Tímto příkazem PIP stáhne a nainstaluje balíček requests a jeho závislosti. Po dokončení instalace můžeme v kódu Pythonu importovat balíček a používat jeho funkce.
import requests response = requests.get("https://www.example.com") print(response.text)
Zobrazení instalovaných balíčků:
Pro zobrazení všech nainstalovaných balíčků a jejich verzí můžeme použít příkaz:
pip list
Tento příkaz vypíše seznam všech balíčků a jejich verzí nainstalovaných v aktuálním Pythonovém prostředí.
Aktualizace balíčků:
Pro aktualizaci konkrétního balíčku na nejnovější verzi můžeme použít:
pip install --upgrade <název_baíčku>
Instalace balíčků ze souboru Requirements.txt:
Soubor requirements.txt je textový soubor, který slouží k definování seznamu balíčků a jejich verzí, které jsou nezbytné pro správný běh vašeho Pythonového projektu. Tento soubor umožňuje jednoduchou a opakovatelnou instalaci všech potřebných závislostí.
requirements.txt
Pravidla pro strukturu requirements.txt jsou jednoduchá. Každý řádek obsahuje název balíčku a volitelně specifikuje požadovanou verzi. Typický zápis vypadá takto:
requests==2.26.0 numpy>=1.21.0,<2.0.0 flask
Pokud není specifikována verze, PIP nainstaluje nejnovější verzi balíčku.
Vytvořit soubor requirements.txt můžete manuálně nebo můžete využít nástroje, jako je pip freeze, který automaticky generuje seznam všech nainstalovaných balíčků s jejich verzemi v aktuálním Pythonovém prostředí. Příklad použití v terminálu:
pip freeze > requirements.txt
Pro instalaci všech balíčků uvedených v requirements.txt použijte následující příkaz:
pip install -r requirements.txt
Virtuální prostředí jsou klíčovým nástrojem pro izolaci projektů, což umožňuje každému projektu používat své vlastní verze závislostí balíčků a Pythonu. Tím se minimalizuje riziko konfliktů mezi projekty a umožňuje snadnou reprodukci vývojového prostředí.
Vytvoření a aktivace:
Pro vytvoření nového virtuálního prostředí použijeme příkaz python -m venv následovaný názvem cílového adresáře pro virtuální prostředí. Například:
python -m venv
python -m venv my_virtual_environment
Pro aktivaci virtuálního prostředí v rámci příkazové řádky použijeme skript:
my_virtual_environment\Scripts\activate
Po aktivaci virtuálního prostředí se před názvem příkazové řádky obvykle zobrazí název virtuálního prostředí, což signalizuje, že jsme nyní v tomto prostředí.
Izolace externích závislostí:
Izolace externích závislostí je jedním z hlavních důvodů používání virtuálních prostředí. Každý projekt může mít svůj vlastní soubor requirements.txt s definovanými verzemi závislých balíčků. Při aktivaci virtuálního prostředí se pak instalují pouze tyto závislosti, což umožňuje snadnou správu projektových závislostí.
Vytváření virtuálního prostředí s volitelnými argumenty:
Příkaz python -m venv podporuje také různé volitelné argumenty pro přizpůsobení virtuálního prostředí. Například, můžeme specifikovat cestu k interpretru Pythonu nebo změnit chování generování skriptů pro aktivaci prostředí.
python -m venv --system-site-packages my_virtual_environment
Tento příkaz umožňuje virtuálnímu prostředí sdílet systémové balíčky, což může být užitečné v některých situacích.
Deaktivace a odstranění:
Deaktivace virtuálního prostředí se provede pomocí příkazu deactivate. Odstranění virtuálního prostředí lze provést jednoduše smazáním odpovídajícího adresáře.
deactivate
Další nástroje pro správu verzí a virtuálních prostředí:
Vedle modulu venv existují i další nástroje pro správu verzí jazyka Python a virtuálních prostředí, jako jsou virtualenv nebo conda. Tyto nástroje poskytují další možnosti a funkce pro správu a konfiguraci virtuálních prostředí.
venv
virtualenv
conda