Бібліотеки та модулі значно спрощують роботу розробникам.
У процесі реалізації проєктів часто виникають ситуації, коли стандартних можливостей мови програмування недостатньо. Для подолання цих труднощів необхідні спеціальні бібліотеки та модулі.
На щастя, Python має велику кількість вбудованих і сторонніх інструментів. Розглянемо деякі з них, які є особливо корисними для розробки проєктів на Python. Спочатку дослідимо вбудовані модулі.
Вбудовані модулі
Python постачається з широким набором вбудованих модулів, призначених для різних задач. Ми розглянемо деякі з них, згрупувавши їх за призначенням.
Колекції – контейнерні типи даних
Python надає різноманітні типи колекцій для зберігання наборів даних, такі як кортежі, списки, словники. Модуль `collections` розширює можливості цих базових типів.
Наприклад, `deque` (двостороння черга) з модуля `collections` схожа на звичайний список, але дозволяє ефективно додавати та видаляти елементи з обох кінців. Це забезпечує кращу швидкодію порівняно зі звичайними списками. Розглянемо приклад використання `collections.deque`:
import collections nums = [1, 2, 3] # Створення deque з списку deque = collections.deque(nums) print(deque) # Додавання елемента в кінець deque.append(4) print(deque) # Додавання елемента на початок deque.appendleft(0) print(deque) # Видалення елемента з кінця deque.pop() print(deque) # Видалення елемента з початку deque.popleft() print(deque)
Запустіть цей код, щоб побачити результати. Модуль `collections` також містить інші корисні типи даних, серед яких:
`Counter`
Повертає словник з частотами елементів у списку. Це підклас класу `dict`.
`UserList`
Використовується для швидкого створення підкласів списку.
`UserDict`
Використовується для швидкого створення підкласів словника.
`UserString`
Використовується для швидкого створення підкласів рядка.
Детальніше про всі можливості модуля `collections` можна дізнатися в офіційній документації.
Коротка порада: метод `dir(object)` дозволяє переглянути всі методи об’єкта.
CSV – обробка файлів
Файли CSV (значення, розділені комами) використовуються для зберігання табличних даних і є популярним форматом для імпорту та експорту даних з електронних таблиць та баз даних. Python має вбудований модуль `csv` для роботи з такими файлами.
Розглянемо приклад зчитування даних з файлу CSV. Спочатку створіть файл `sample.csv` і вставте в нього такі дані:
Name,Age,Graduation Year Hafeez,21,2021 Aslan,23,2019 Rambabu,21,2021
Модуль `csv` надає методи для читання та запису даних. Розглянемо процес зчитування:
import csv with open('sample.csv') as file: # Створення об'єкта reader reader = csv.reader(file) # Зчитування рядків у циклі for row in reader: # row є списком елементів з файлу CSV # З'єднання елементів за допомогою join(list) print(','.join(row))
Запустіть цей код і перевірте результат. Для запису даних у файл CSV використовується об’єкт `csv.writer()`. Вивчайте інші методи самостійно, використовуючи `dir()` та `help()`. Python також має вбудований модуль `json` для роботи з файлами JSON.
`random` – генерація випадкових чисел
Модуль `random` дозволяє генерувати випадкові дані. Цей модуль можна використовувати в програмах, таких як хрестики-нулики, гра в кості тощо.
Розглянемо приклад генерації випадкових цілих чисел у заданому діапазоні:
import random # Генерація випадкового числа в діапазоні 1-100 print(random.randint(1, 100))
Вивчайте інші методи модуля `random` за допомогою `dir()` та `help()`. Розглянемо просту гру “Вгадай число” за допомогою цього модуля.
Суть гри полягає в тому, що програма генерує випадкове число в діапазоні від 1 до 100. Користувач намагається вгадати це число. Після кожної спроби програма повідомляє, чи є число користувача більшим або меншим за загадане. Після вгадування виводиться кількість спроб.
Код програми:
# Імпортуємо модуль random import random # Генеруємо випадкове число random_number = random.randint(1, 100) # Ініціалізуємо кількість спроб guess_count = 0 # Цикл, поки користувач не вгадає число while True: # Отримуємо введення користувача user_guessed_number = int(input("Введіть число в діапазоні 1-100: ")) # Перевірка на рівність if user_guessed_number == random_number: print(f"Ви вгадали число за {guess_count} спроб") # Вихід з циклу break elif user_guessed_number < random_number: print("Ваше число замале") elif user_guessed_number > random_number: print("Ваше число завелике") # Збільшення лічильника спроб guess_count += 1
Tkinter – програми з графічним інтерфейсом
Tkinter – вбудований модуль для створення додатків з графічним інтерфейсом (GUI). Він зручний для початківців і дозволяє створювати такі програми, як калькулятори, текстові редактори тощо. Існує багато ресурсів для вивчення розробки GUI за допомогою Tkinter.
Рекомендується використовувати офіційну документацію для початку роботи. Починайте створювати чудові програми з графічним інтерфейсом вже зараз!
Сторонні модулі
`requests` – HTTP-запити
Модуль `requests` використовується для відправки HTTP-запитів на сервер. Він підтримує HTTP/1.1 та дозволяє додавати заголовки, дані та інші параметри за допомогою словників Python. Цей модуль є стороннім, тому його потрібно встановити. Для цього в терміналі введіть:
pip install requests
Працювати з модулем `requests` досить легко. Розглянемо, як відправити GET-запит:
import requests # Відправляємо GET-запит request = requests.get("https://www.google.com/") # Виводимо код стану, URL та метод запиту print(request.status_code) print(request.url) print(request.request)
Цей код виведе код стану, URL та метод запиту (GET, POST). Ви також можете отримати доступ до вихідного коду сторінки за допомогою `request.content`. Докладніше про можливості модуля можна дізнатися в його документації.
BeautifulSoup4 – веб-скрейпінг
Бібліотека BeautifulSoup використовується для веб-скрейпінгу і є досить зручною для роботи навіть початківцям. Ознайомитися з її можливостями можна в документації. Розглянемо приклад вилучення даних зі звіту клієнтів.
Для встановлення BeautifulSoup введіть в терміналі:
pip install beautifulsoup4
Програма для першого веб-скрейпінгу:
## Скрейпінг списку продуктів ConsumerReport за допомогою BeautifulSoup ## Імпортуємо модулі bs4 та requests import bs4 import requests ## Ініціалізуємо URL url = "https://www.consumerreports.org/cro/a-to-z-index/products/index.htm" ## Отримуємо відповідь сторінки за допомогою методу get модуля requests page = requests.get(url) ## Зберігаємо контент сторінки в змінну html = page.content ## Створюємо об'єкт BeautifulSoup soup = bs4.BeautifulSoup(html, "lxml") ## Шукаємо клас або id тегу, що містить назви та посилання div_class = "crux-body-copy" ## Отримуємо всі div-теги з використанням методу find_all div_tags = soup.find_all("div", class_=div_class) ## Знаходимо div з заданим класом ## Переглядаємо всі теги a всередині div, які містять назву та посилання for tag in div_tags: print(tag)
Запустіть цей код і побачите результат веб-скрейпінгу. Існують й інші фреймворки для веб-скрейпінгу, які ви можете спробувати.
Наука про дані та машинне навчання
Для науки про дані та машинного навчання розроблено кілька спеціалізованих бібліотек, які написані на C і відрізняються високою швидкістю.
NumPy
NumPy використовується для наукових обчислень.
Вона дозволяє працювати з багатовимірними масивами. У Python немає власної реалізації масивів, тому розробники часто використовують NumPy у проєктах машинного навчання для складних математичних обчислень.
Для встановлення модуля введіть команду:
pip install numpy
Pandas
Pandas – це бібліотека для аналізу даних. Вона дозволяє ефективно фільтрувати дані та пропонує різноманітні структури даних, зручні для роботи з ними, а також підтримує роботу з файлами різних форматів.
Встановити модуль можна за допомогою команди:
pip install pandas
Matplotlib
Matplotlib – це бібліотека для побудови двовимірних графіків. За її допомогою можна візуалізувати дані, створювати зображення фігур у різних форматах та будувати різні типи діаграм, такі як стовпчикові, точкові, гістограми тощо.
Для встановлення Matplotlib введіть:
pip install matplotlib
Коротка порада: можна встановити Anaconda, щоб отримати всі необхідні бібліотеки для Data Science.
Якщо ви серйозно налаштовані вивчати Python для обробки даних та машинного навчання, рекомендуємо ознайомитися з цим курсом Udemy.
Веб-фреймворки
Існує багато веб-фреймворків на Python. Розглянемо два найпопулярніші: Django та Flask.
Django
Django – це веб-фреймворк з відкритим кодом, розроблений на Python. Він зручний для створення веб-сайтів будь-якої складності. Серед відомих сайтів, створених за допомогою Django, є Instagram, Bitbucket, Disqus, Mozilla Firefox тощо.
- Django дозволяє швидко створювати складні веб-сайти.
- Він виконує багато завдань, необхідних для веб-розробки.
- Забезпечує безпеку від атак SQL Injection, міжсайтових скриптів, підробки міжсайтових запитів і клікджекінгу.
- Дозволяє створити будь-який веб-сайт, від системи керування контентом до соціальної мережі.
Документація Django є досить зрозумілою. Для роботи з цим фреймворком необхідно знати Python. Проте, вивчити Django нескладно.
Flask
Flask – це мікровеб-фреймворк, розроблений на Python.
Він є більш “пітонічним” за Django та має чудову документацію. Він використовує механізм шаблонів Jinja. Створення великих веб-сайтів на Flask може бути складним. Більшість функцій, таких як маршрутизація URL-адрес, відправка запитів, безпечні файли cookie та сеанси, присутні як у Django, так і у Flask.
Вибір фреймворку залежить від складності вашого сайту. Django набирає популярності серед розробників і є найбільш використовуваним фреймворком для веб-розробки на Python.
Висновок
Сподіваюся, ви дізналися багато нового про різноманітні модулі, бібліотеки та фреймворки для Python.
Кожен колись був початківцем.
Щоб розпочати, спочатку зверніться до документації. Якщо документація незрозуміла, шукайте прискорені курси на навчальних сайтах.