11 Pythonových knihoven a modulů, které by měl znát každý vývojář

Photo of author

By etechblogcz

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.