Biblioteki i moduły stanowią nieocenioną pomoc w pracy programisty.
Podczas realizacji rozmaitych projektów, można natrafić na wyzwania, których nie da się rozwiązać, posługując się wyłącznie standardowym kodowaniem danego języka programowania. W takich sytuacjach, to właśnie biblioteki i moduły okazują się niezbędne, umożliwiając pokonanie tych trudności.
Na szczęście, Python oferuje szeroki wybór modułów i bibliotek. Oprócz modułów wbudowanych, dostępnych jest również wiele bibliotek i modułów stworzonych przez zewnętrznych deweloperów. W niniejszym artykule przyjrzymy się zarówno modułom wbudowanym, jak i tym zewnętrznym, które znacząco ułatwiają pracę nad projektami w Pythonie. Na początku skupimy się na modułach, które są integralną częścią tego języka.
# Moduły wbudowane
Python oferuje obszerny zestaw wbudowanych modułów, przeznaczonych do różnorodnych zastosowań. Każdy z nich omówimy szczegółowo, zgodnie z ich przeznaczeniem.
Kolekcje – typy danych kontenerowych
Python udostępnia różnorodne typy kolekcji, umożliwiające przechowywanie zbiorów danych. Przykładowo, krotki, listy czy słowniki to tylko niektóre z dostępnych wbudowanych kolekcji. Moduł `collections` rozszerza funkcjonalność tych wbudowanych struktur.
Korzystając z kolekcji `deque` z modułu `collections`, uzyskujemy strukturę podobną do listy, jednak z tą różnicą, że możemy dodawać i usuwać elementy z obu jej końców. Jest to operacja szybsza niż w przypadku standardowej listy. Wybór `deque` zależy od specyfiki zadania. Poniżej znajduje się przykład użycia `collections.deque`.
import collections nums = [1, 2, 3] # tworzenie kolekcji deque z listy deque = collections.deque(nums) print(deque) # dodawanie elementu na końcu deque.append(4) print(deque) # dodawanie elementu na początku deque.appendleft(0) print(deque) # usuwanie elementu z końca deque.pop() print(deque) # usuwanie elementu z początku deque.popleft() print(deque)
Po uruchomieniu powyższego kodu, można zaobserwować jego działanie. Moduł `collections` oferuje także inne interesujące kolekcje danych.
Przykłady:
`Counter`
Zwraca słownik, który przechowuje częstość występowania elementów w liście.
Jest to podklasa klasy `dict`.
`UserList`
Używana do szybkiego tworzenia podklas listy.
`UserDict`
Używana do szybkiego tworzenia podklas słownika.
`UserString`
Używana do szybkiego tworzenia podklas łańcucha znaków.
Zachęcamy do zapoznania się z pełną dokumentacją modułu `collections`, aby dogłębnie poznać wszystkie dostępne struktury danych i ich metody.
Ważna wskazówka: – Wykorzystaj wbudowaną metodę `dir(obiekt)` w Pythonie, aby sprawdzić wszystkie dostępne metody danego obiektu.
CSV – obsługa plików
Pliki CSV (ang. Comma Separated Values) są przydatne do przechowywania danych tabelarycznych. To popularny format stosowany do importowania i eksportowania danych z arkuszy kalkulacyjnych i baz danych. Python oferuje moduł `csv`, który umożliwia efektywną obsługę plików CSV.
Przyjrzyjmy się przykładowi odczytu danych z pliku CSV.
W tym celu, stwórz plik o nazwie `sample.csv` i wklej do niego następujące dane:
Name,Age,Graduation Year Hafeez,21,2021 Aslan,23,2019 Rambabu,21,2021
Moduł `csv` zawiera metody zarówno do odczytu, jak i zapisu danych. Poniżej znajduje się przykład ilustrujący, jak odczytywać dane z plików CSV przy użyciu tego modułu.
import csv with open('sample.csv') as file: # tworzenie czytnika reader = csv.reader(file) # odczyt linia po linii przy użyciu pętli for row in reader: # row to lista zawierająca elementy z pliku CSV # łączenie elementów listy przy użyciu metody join(lista) print(','.join(row))
Uruchom powyższy kod i obserwuj efekty jego działania.
Moduł `csv` oferuje także obiekt `csv.writer()` umożliwiający zapisywanie danych do pliku CSV. Eksperymentuj z innymi metodami, wykorzystując wbudowane funkcje `dir()` i `help()`. Python oferuje także moduł `json` służący do obsługi plików w formacie JSON. On także jest wbudowany w interpreter.
Random – generowanie liczb losowych
Python zawiera moduł `random`, który pozwala na generowanie losowych danych. Za pomocą różnych metod tego modułu możemy generować liczby losowe, losowe wybory z kolekcji i wiele innych. Moduł ten można wykorzystać w aplikacjach, takich jak gra w kółko i krzyżyk, symulacje rzutu kostką i inne.
Poniżej znajduje się przykład generowania losowej liczby całkowitej z określonego zakresu.
import random # generowanie losowej liczby z zakresu 1-100 print(random.randint(1, 100))
Warto zbadać pozostałe metody modułu `random` za pomocą funkcji `dir()` i `help()`. Na podstawie tego modułu stworzymy prostą grę – zgadywanie liczb.
Na czym polega ta gra?
Program losuje liczbę z zakresu od 1 do 100. Zadaniem użytkownika jest zgadnięcie tej liczby. Po każdej próbie program informuje, czy podana liczba jest mniejsza, czy większa od wylosowanej. Po odgadnięciu liczby program wyświetla liczbę podjętych prób.
Poniżej przedstawiono kod źródłowy gry.
# import modułu random import random # generowanie losowej liczby random_number = random.randint(1, 100) # inicjalizacja licznika prób guess_count = 0 # pętla działa dopóki użytkownik nie odgadnie liczby while True: # pobieranie danych od użytkownika user_guessed_number = int(input("Wprowadź liczbę z zakresu 1-100:- ")) # sprawdzenie, czy liczba została odgadnięta if user_guessed_number == random_number: print(f"Odgadłeś liczbę w {guess_count} próbach") # zakończenie pętli break elif user_guessed_number < random_number: print("Twoja liczba jest za mała") elif user_guessed_number > random_number: print("Twoja liczba jest za duża") # zwiększanie licznika prób guess_count += 1
Tkinter – aplikacje z interfejsem graficznym
Tkinter jest wbudowanym modułem umożliwiającym tworzenie aplikacji z interfejsem graficznym (GUI). Jest szczególnie przyjazny dla początkujących. Za jego pomocą można tworzyć różnorodne aplikacje GUI, takie jak kalkulatory, systemy logowania, edytory tekstu. Dostępnych jest wiele materiałów edukacyjnych dotyczących tworzenia GUI przy użyciu Tkinter.
Najlepszym punktem startowym jest zapoznanie się z oficjalną dokumentacją. Zachęcamy do rozpoczęcia nauki Tkinter i tworzenia atrakcyjnych aplikacji GUI.
# Moduły stron trzecich
Requests – wysyłanie zapytań HTTP
Moduł `requests` jest używany do wysyłania zapytań HTTP do serwera. Umożliwia on wysyłanie żądań HTTP/1.1. Możemy także dodawać nagłówki, dane i inne elementy za pomocą słowników Pythona. Ponieważ jest to moduł zewnętrzny, należy go zainstalować. W tym celu, w terminalu lub w wierszu poleceń, należy uruchomić poniższą komendę.
pip install requests
Praca z modułem `requests` jest intuicyjna. Możemy rozpocząć z nim pracę nawet bez wcześniejszej wiedzy. Poniżej znajduje się przykład wysłania żądania GET oraz analiza zwracanych danych.
import requests # wysłanie żądania GET request = requests.get("https://www.google.com/") # wyświetlenie kodu statusu, adresu URL oraz metody żądania print(request.status_code) print(request.url) print(request.request)
Powyższy kod wyświetli kod statusu HTTP, adres URL oraz metodę żądania (GET, POST). Możemy także uzyskać kod źródłowy strony internetowej za pomocą atrybutu `request.content`. Zachęcamy do zapoznania się z dokumentacją modułu, aby odkryć jego pełny potencjał.
BeautifulSoup4 – skrobanie stron internetowych
Biblioteka BeautifulSoup jest narzędziem służącym do pobierania i analizowania danych ze stron internetowych. Jest to przydatny moduł, który jest łatwy do opanowania, nawet dla początkujących. Warto zacząć od zapoznania się z dokumentacją. Poniżej znajduje się przykład kodu, który pobiera listę produktów z serwisu Consumer Reports.
Aby zainstalować BeautifulSoup, uruchom w terminalu/wierszu poleceń następującą komendę:
pip install beautifulsoup4
Poniżej przedstawiamy prosty program służący do skrobania stron internetowych.
## Skrobanie listy produktów z Consumer Reports przy użyciu BeautifulSoup ## importowanie modułów bs4, requests import bs4 import requests ## inicjalizacja adresu url url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm" ## pobieranie odpowiedzi z użyciem metody get z modułu requests page = requests.get(url) ## zapisywanie zawartości strony do zmiennej html = page.content ## tworzenie obiektu BeautifulSoup soup = bs4.BeautifulSoup(html, "lxml") ## sprawdzanie klasy lub id tagu, który zawiera nazwy i linki div_class = "crux-body-copy" ## pobieranie wszystkich tagów div przy użyciu metody find_all div_tags = soup.find_all("div", class_=div_class) ## wyszukiwanie tagów div z określoną klasą ## wyświetlanie tagów a z nazwami i linkami for tag in div_tags: print(tag)
Uruchom powyższy kod, aby zobaczyć, jak działa web scraping. Istnieje wiele innych platform i bibliotek do pobierania danych ze stron internetowych.
# Nauka o danych i uczenie maszynowe
Powstało wiele bibliotek stworzonych specjalnie dla potrzeb nauki o danych i uczenia maszynowego. Są one w większości zaimplementowane w języku C, dzięki czemu charakteryzują się wysoką wydajnością.
Numpy
Numpy jest biblioteką wykorzystywaną w obliczeniach naukowych.
Umożliwia ona operowanie na tablicach wielowymiarowych. Python nie ma wbudowanej implementacji tablic, dlatego biblioteka Numpy jest bardzo ważna. Jest to fundamentalne narzędzie w projektach z zakresu uczenia maszynowego, łatwa w obsłudze, biblioteka otwarta. Praktycznie każdy inżynier ML i analityk danych korzysta z niej w celu wykonywania skomplikowanych obliczeń matematycznych.
Aby zainstalować Numpy, uruchom następującą komendę:
pip install numpy
Pandas
Pandas to moduł do analizy danych. Za jego pomocą można efektywnie filtrować dane. Oferuje on różnorodne typy struktur danych, bardzo przydatne w pracy. Umożliwia również obsługę plików w różnych formatach.
Aby zainstalować moduł, uruchom komendę:
pip install pandas
Matplotlib
Matplotlib jest biblioteką do tworzenia wykresów 2D. Umożliwia wizualizację danych.
Możemy generować wykresy w różnych formatach. Wykresy te mogą przyjmować postać wykresów słupkowych, histogramów, wykresów rozrzutu i wielu innych. Matplotlib instaluje się za pomocą następującej komendy:
pip install matplotlib
Ważna wskazówka: – Aby uzyskać dostęp do wszystkich bibliotek i modułów potrzebnych do Data Science, warto zainstalować dystrybucję Anaconda.
Jeśli myślisz o nauce Pythona z zamiarem wykorzystania go w obszarze Data Science lub ML, rozważ ten kurs Udemy.
# Frameworki webowe
W Pythonie istnieje wiele frameworków webowych. Omówimy dwa z nich, które są najczęściej używane przez programistów: Django i Flask.
Django
Django to framework webowy open source, napisany w Pythonie. Tworzenie stron internetowych z wykorzystaniem Django jest bardzo wygodne. Za pomocą tego frameworka można stworzyć każdy rodzaj witryny internetowej. Najbardziej znane strony internetowe, które zostały zbudowane z użyciem Django, to m.in. Instagram, Bitbucket, Disqus i Mozilla Firefox.
- Dzięki funkcjonalnościom Django można szybko tworzyć rozbudowane strony internetowe.
- Django automatyzuje wiele zadań potrzebnych do budowy stron.
- Oferuje ochronę przed atakami SQL Injection, cross-site scripting, cross-site request forgery i clickjacking.
- Za jego pomocą możemy zbudować dowolną stronę, od systemów zarządzania treścią po serwisy społecznościowe.
Dokumentacja Django jest bardzo przejrzysta. Do korzystania z Django wymagana jest znajomość Pythona. Nauka Django nie jest jednak skomplikowana. Sprawdź ten kurs.
Flask
Flask jest mikro frameworkiem webowym, również napisanym w Pythonie.
Jest bardziej „pythoniczny” niż Django. Posiada doskonałą dokumentację. Wykorzystuje silnik szablonów Jinja. Budowa bardzo dużych stron internetowych przy użyciu Flaska może być skomplikowana. Większość funkcjonalności, takich jak routing adresów URL, obsługa żądań, bezpieczne pliki cookie i sesje jest dostępna zarówno w Django, jak i we Flask.
Wybór frameworka powinien być podyktowany stopniem złożoności witryny. Django zyskuje coraz większą popularność wśród programistów. Jest najczęściej wybieranym frameworkiem do tworzenia stron internetowych w Pythonie.
Podsumowanie
Mamy nadzieję, że niniejszy artykuł przybliżył Ci różnorodność modułów, bibliotek i frameworków dostępnych dla Pythona.
Każdy kiedyś zaczynał.
Zanim zaczniesz, zapoznaj się z dokumentacją. Jeśli dokumentacja jest niezrozumiała, skorzystaj z dostępnych kursów online na platformach edukacyjnych.