1. Úvod

Cíle cvičení

  • instalace programovacího jazyka Python a vhodného programovacího prostředí

Důležité odkazy

Instalace Pythonu

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.

Nepokoušejte se odinstalovat systémový Python!

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.

Instalce na Windows

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í.

Pokud je váš systém vybaven 32bitovým procesorem, měli byste zvolit 32bitový instalační soubor. Pokud si nejste jisti, zda je váš počítač 32bitový nebo 64bitový, spusťte Windows PowerShell s příkazem systeminfo a najděte položku 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ě:

Ujistěte se, že jste zaškrtli políčko Add Python 3.x to PATH. Pokud nainstalujete Python bez zaškrtnutí tohoto políčka, můžete znovu spustit instalační program a zaškrtnout jej.

Kliknutím na tlačítko Install now nainstalujete Python 3. Počkejte na dokončení instalace.

Krok 3: IDE

Je možné použít vývojové prostředí dle vašich preferencí:

Interaktivní režim a režim skriptování

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.

Hello World

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:

# lec01 - hello_world.py
print("Hello, World!")

Skript můžete spustit dvěma způsoby:

  1. Příkaz > python .\hello_world.py (nutné spustit v adresáři, ve kterém se hello_world.py nachází).
  2. V pravém horním rohu kliknout na tlačítko Run Python file.

Zpracování chyb

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.

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.

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:

  1. Na posledním řádky tracebacku je uveden název chyby a chybová zpráva. V tomto případě došlo k chybě NameError, protože název Hello není nikde definován.
  2. Na předposledním řádku je uveden kód, který chybu způsobil. V souboru hello_world.py je pouze jeden řádek kódu, takže není těžké uhodnout, kde je problém. Tato informace je užitečnější u větších souborů.
  3. Na dalším řádku je uveden název souboru a číslo řádku, abyste mohli přejít na přesné místo v kódu, kde se chyba vyskytla.

Moduly a balíčky

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.

Moduly v Pythonu

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:

# 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íčky v Pythonu

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.

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)

Správa balíčků pomocí PIPu

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

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í.

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í

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 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.

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í.

courses/b0b37nsi/tutorials/01.txt · Last modified: 2024/02/21 19:16 by spicajak