Knihovny a moduly představují klíčové nástroje, které usnadňují práci programátorů.
Během vývoje projektů se můžete dostat do situací, kdy standardní programovací postupy vašeho jazyka nemusí stačit k vyřešení daného problému. V takových případech se stávají nezbytnými knihovny a moduly, které rozšiřují možnosti programovacího jazyka.
Python nabízí širokou škálu vestavěných i externích knihoven a modulů, které jsou dostupné pro různé účely. Prozkoumáme některé z nich, abychom demonstrovali jejich užitečnost a přínos pro projekty v Pythonu. Začneme se podívat na vestavěné moduly.
# Integrované moduly
Python je vybaven mnoha integrovanými moduly, které pokrývají širokou škálu využití. Tyto moduly si představíme a rozebereme je z hlediska jejich použití.
Kolekce – Datové typy kontejnerů
Python poskytuje různé datové typy pro uchovávání sbírek dat, jako jsou n-tice (tuple), seznamy (list) a slovníky (dict). Modul `collections` rozšiřuje tyto základní typy o další specializované kolekce.
Například, `deque` z modulu `collections` se chová podobně jako seznam, ale umožňuje efektivní přidávání a odebírání prvků z obou konců. To je rychlejší než standardní seznam. Způsob, jakým použijete `deque`, závisí na vašich konkrétních potřebách. Podívejme se na příklad práce s `collections.deque`.
import collections nums = [1, 2, 3] # vytvoření deque kolekce ze seznamu deque = collections.deque(nums) print(deque) # přidání prvku na konec deque.append(4) print(deque) # přidání prvku na začátek deque.appendleft(0) print(deque) # odebrání prvku z konce deque.pop() print(deque) # odebrání prvku ze začátku deque.popleft() print(deque)
Po spuštění výše uvedeného kódu si můžete prohlédnout výsledky. V modulu `collections` se nacházejí i další zajímavé datové struktury.
Některé z nich jsou:
Counter
Vrací slovník, který obsahuje četnost výskytu prvků v seznamu.
Je to podtřída třídy dict.
UserList
Používá se pro rychlou implementaci podtřídy seznamu.
UserDict
Používá se pro rychlou implementaci podtřídy slovníku.
UserString
Používá se pro rychlou implementaci podtřídy řetězce.
Prozkoumejte všechny kolekce a metody modulu `collections` v jeho dokumentaci.
Užitečný tip: V Pythonu můžete použít vestavěnou funkci `dir(objekt)` pro zobrazení všech metod daného objektu.
CSV – Zpracování souborů
Pro uložení tabulkových dat se často používají soubory CSV (hodnoty oddělené čárkami). Jedná se o běžný formát pro import a export dat z tabulek a databází. Python poskytuje modul `csv` pro zpracování těchto souborů.
Podívejme se na příklad, jak načíst data ze souboru CSV.
Vytvořte si soubor `sample.csv` a vložte do něj následující data.
Jméno,Věk,Rok Promoce Hafeez,21,2021 Aslan,23,2019 Rambabu,21,2021
Modul `csv` poskytuje metody pro čtení i zápis do souborů CSV. Ukážeme si, jak číst data ze souboru pomocí modulu `csv`.
import csv with open('sample.csv') as file: # vytvoření čtecího objektu reader = csv.reader(file) # čtení řádek po řádku pomocí cyklu for row in reader: # řádek je seznam obsahující prvky z CSV souboru # spojení seznamu pomocí join(list) metody print(','.join(row))
Po spuštění tohoto kódu můžete vidět, jak se data ze souboru CSV zobrazují.
Pro zápis do souboru CSV můžete použít objekt `csv.writer()`. Experimentujte sami s dalšími metodami pomocí vestavěných funkcí `dir()` a `help()`. Pro práci se soubory JSON je k dispozici další vestavěný modul, který se nazývá `json`.
Random – Generování Náhodných čísel
Python má modul `random`, který umožňuje generovat náhodná data. Pomocí různých metod tohoto modulu můžeme vytvářet náhodné sekvence pro různé účely. Tento modul se hodí například pro hry jako je piškvorky, hra s kostkami a podobně.
Podívejme se na jednoduchý program pro generování náhodných celých čísel z určitého rozsahu.
import random # generování náhodného čísla v rozsahu 1-100 print(random.randint(1, 100))
Další metody modulu `random` prozkoumejte pomocí funkcí `dir()` a `help()`. Nyní si zkusíme napsat jednoduchou hru s využitím modulu `random`, kterou můžeme nazvat „Hádání čísla“.
O co v hře jde?
Program vygeneruje náhodné číslo v rozmezí 1 až 100. Uživatel hádá číslo, dokud se netrefí do náhodně vygenerovaného čísla. Po každém tipu se vypíše, zda je tip menší nebo větší než náhodné číslo. Na konci se zobrazí celkový počet tipů.
Níže je uveden kód pro tuto hru:
# import random modulu import random # generování náhodného čísla random_number = random.randint(1, 100) # inicializace počtu tipů na 0 guess_count = 0 # cyklus, který běží dokud uživatel neuhodne číslo while True: # získání vstupu od uživatele user_guessed_number = int(input("Zadejte číslo v rozsahu 1-100:- ")) # kontrola rovnosti if user_guessed_number == random_number: print(f"Uhodli jste číslo na {guess_count} pokusů") # ukončení cyklu break elif user_guessed_number < random_number: print("Vaše číslo je příliš malé") elif user_guessed_number > random_number: print("Vaše číslo je příliš velké") # zvýšení počtu tipů guess_count += 1
Tkinter – GUI aplikace
Tkinter je vestavěný modul pro vytváření GUI aplikací (grafické uživatelské rozhraní). Je vhodný pro začátečníky a umožňuje vytvářet aplikace jako kalkulačky, přihlašovací systémy, textové editory a další. Existuje mnoho zdrojů, které vám mohou pomoci s učením vývoje GUI pomocí Tkinter.
Nejlepším zdrojem je oficiální dokumentace. Pokud chcete začít pracovat s Tkinter, podívejte se do dokumentace a začněte vytvářet vizuálně atraktivní aplikace.
# Moduly třetích stran
Requests – HTTP Požadavky
Modul `requests` se používá pro odesílání HTTP požadavků na server. Umožňuje odesílat požadavky HTTP/1.1 a přidávat hlavičky, data a další detaily pomocí slovníků Pythonu. Protože se jedná o modul třetí strany, je nutné jej nainstalovat pomocí následujícího příkazu:
pip install requests
Práce s modulem `requests` je snadná i bez předchozích zkušeností. Podívejme se, jak odeslat požadavek GET a jaký bude výsledek.
import requests # odeslání GET požadavku request = requests.get("https://www.google.com/") # výpis stavového kódu print(request.status_code) print(request.url) print(request.request)
Výše uvedený kód vypíše stavový kód, URL a metodu požadavku (GET, POST). Získáte také zdrojový kód stránky z URL, který je přístupný pomocí `request.content`. Více informací najdete v dokumentaci modulu `requests`.
BeautifulSoup4 – Web Scraping
Knihovna BeautifulSoup se používá pro web scraping. Je to velmi užitečný modul, se kterým mohou začít pracovat i začátečníci pomocí dokumentace. Níže je uveden příklad, který ukazuje, jak extrahovat detaily z webové stránky.
BeautifulSoup nainstalujete pomocí následujícího příkazu v terminálu:
pip install beautifulsoup4
Následuje jednoduchý program pro vaše první web scraping:
## Scrapování seznamu produktů ConsumerReport pomocí BeautifulSoup ## importování bs4, requests modulů import bs4 import requests ## inicializace url url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm" ## získání odpovědi z webové stránky pomocí metody get modulu requests page = requests.get(url) ## uložení obsahu stránky do proměnné html = page.content ## vytvoření objektu BeautifulSoup soup = bs4.BeautifulSoup(html, "lxml") ## zjištění třídy nebo id tagu, který obsahuje názvy a odkazy div_class = "crux-body-copy" ## získání všech div tagů pomocí metody find_all div_tags = soup.find_all("div", class_=div_class) ## hledání div tagů s danou třídou ## zobrazení tagů a tagů a, které mají jména a odkazy uvnitř div tagů for tag in div_tags: print(tag)
Spusťte výše uvedený kód a sami uvidíte kouzlo web scrapingu. Existuje i více pokročilých frameworků pro web scraping, které můžete vyzkoušet.
# Datová věda a strojové učení
Existuje několik knihoven, které jsou speciálně navržené pro datovou vědu a strojové učení. Tyto knihovny jsou vyvíjeny v jazyce C, což jim zajišťuje vysokou rychlost.
Numpy
Numpy se používá pro vědecké výpočty.
Umožňuje pracovat s vícerozměrnými poli, což nativně v Pythonu není dostupné. Vývojáři strojového učení používají knihovnu numpy ve svých projektech pro složité matematické výpočty. Jedná se o knihovnu s otevřeným zdrojovým kódem, kterou se snadno naučíte.
Nainstalujte modul numpy pomocí následujícího příkazu:
pip install numpy
Pandas
Pandas je modul pro analýzu dat. Pomocí knihovny pandas můžete efektivně filtrovat data. Knihovna nabízí různé datové struktury, které se hodí pro různé účely a umožňuje zpracovávat data z různých formátů souborů.
Modul nainstalujte pomocí následujícího příkazu:
pip install pandas
Matplotlib
Matplotlib je knihovna pro vizualizaci 2D grafů. Umožňuje vizualizovat data v různých formátech, jako jsou sloupcové grafy, histogramy, bodové grafy a další.
Matplotlib nainstalujete pomocí následujícího příkazu:
pip install matplotlib
Rychlá poznámka: Můžete nainstalovat Anacondu pro získání všech knihoven a modulů potřebných pro Data Science.
Pokud to myslíte vážně s učením Pythonu pro datovou vědu a strojové učení, podívejte se na tento kurz na Udemy.
# Webové frameworky
V Pythonu existuje mnoho webových frameworků. Probereme dva frameworky, které jsou mezi vývojáři velmi populární, a to Django a Flask.
Django
Django je open-source webový framework vyvinutý v Pythonu. Usnadňuje vytváření webových stránek a umožňuje vytvářet různé druhy webů. Mezi nejznámější weby, které byly vytvořeny pomocí Django patří Instagram, Bitbucket, Disqus nebo Mozilla Firefox.
- Django umožňuje rychle vytvářet i komplexní webové stránky.
- Django se postará o většinu úkolů potřebných pro vývoj webu.
- Poskytuje ochranu před útoky jako jsou SQL Injection, cross-site scripting, cross-site request forgery nebo clickjacking.
- Díky Django můžeme vytvářet různé typy webů od redakčních systémů po sociální sítě.
Dokumentace Django je velmi přehledná. Pro práci s Django je potřeba mít dobré znalosti Pythonu. Pokud ještě nejste zběhlí v Pythonu, podívejte se na kurzy, které vám pomohou se v Django rychle zorientovat.
Flask
Flask je mikro webový framework vyvinutý v Pythonu.
Je více pythonic než Django. Má vynikající dokumentaci a používá šablonovací engine Jinja. Vývoj velkých webů ve Flasku je složitější než v Djangu. V obou frameworkách jsou ale k dispozici funkce jako směrování URL, odesílání požadavků, zabezpečení cookies, správa relací a další.
Volba frameworku by měla odpovídat složitosti vašeho projektu. Django je mezi vývojáři stále více populární a je to nejčastěji používaný framework pro vývoj webů v Pythonu.
Závěr
Doufám, že jste se v tomto článku dozvěděli o různých modulech, knihovnách a frameworkách pro Python.
Každý někdy začínal.
Ať už chcete začít s čímkoli, podívejte se nejprve do dokumentace a začněte se to učit. Pokud nerozumíte dokumentaci, najděte si rychlé kurzy na vzdělávacích webech.