List comprehension (розуміння списків):
Це дозволяє створювати новий список, застосовуючи вираз або умову до кожного елементу в ітерабельному об'єкті, з можливістю фільтрувати елементи за допомогою умови. Або, можна сказати, це короткий спосіб створення списку на основі значень існуючого списку.
Приклад:
list2 = [x for x in list1]
list2 = [x for x in list1 if x!=2]
list2 = [x*2 for x in list1]
list2 = [x for x in range(5)]
Python Lambda Functions (лямбда-функції в Python):
Це невеликі анонімні функції. Вони часто використовуються для коротких функцій, які не призначені для повторного використання.
multiply = lambda x, y: x * y
print(multiply(3, 4)) # Виводить: 12
Python Lambda Functions (лямбда-функції в Python) з MAP, FILTER, REDUCE:
Функція map()
застосовує вказану функцію до всіх елементів ітерабельного об'єкта, наприклад, списку.
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers) # Виводить: [1, 4, 9, 16]
Функція filter()
фільтрує елементи з ітерабельного об'єкта на основі заданої функції.
nums = [1, 2, 3, 4, 5]
even_nums = filter(lambda x: x % 2 == 0, nums)
print(list(even_nums)) # Виводить: [2, 4]
reduce()
застосовує функцію lambda x, y: x * y
кумулятивно. Вона починає з перших двох елементів, потім застосовує функцію до результату і наступного елементу, і так далі, поки не обробить всі елементи. У цьому випадку вона обчислює добуток усіх чисел.
nums = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, nums)
print(product) # Виводить: 24
Форматування рядків:
F-строки дозволяють форматувати вибрані частини рядка.
cost = 59
text = f"The cost is {cost} "
Ви також можете виконувати деякі операції під час форматування рядка:
text = f"The cost is {2 * 50} Dollars"
price = 59
tax = 0.25
text = f"The price is {price + (price * tax)} dollars"
cost = 49
text = f"It is very {'Expensive' if cost>50 else 'Cheap'}"
name = "testing"
text = f"my name is {name.upper()}"
Обробка виключень (Exception Handling):
Використовуємо блоки try
, except
, finally
для обробки помилок під час виконання програми. Підняття виключень за допомогою raise
.
try:
x = 10 / 0
except ZeroDivisionError:
print("Неможливо поділити на нуль")
Робота з файлами (File Handling):
Читання та запис у файли за допомогою open()
, read()
, write()
та with
для управління контекстом.
with open('file.txt', 'w') as f:
f.write("Hello, World!")
Модулі Python (Python Modules):
Модуль (Module) у Python — це просто файл з розширенням .py
, який містить Python-код. Це може бути скрипт з функціями, змінними або їх комбінацією.
Приклад:
import math
print(math.sqrt(16)) # Виводить: 4.0
from math import sqrt #для імпорту конкретної функції
print(sqrt(16)) # Виводить: 4.0
Ось деякі модулі, які надає Python і які можуть вам дуже допомогти:
import math
import os #Інтерфейси операційної системи
import sys #Параметри та функції для системи
import random #Генерація випадкових чисел
import datetime
import json
import re #Регулярні вирази
import requests #HTTP запити (модуль сторонніх розробників)
Щоб імпортувати сторонні модулі, використовуйте pip install numpy. І для перегляду всіх встановлених пакетів використовуйте pip list.
Декоратори Python (Python Decorators):
У Python декоратор (Decorator) — це патерн проектування, який дозволяє змінювати або розширювати поведінку функції або методу без зміни їх коду. Зазвичай, декоратори дозволяють покращити функцію додатковою поведінкою.
Декоратор — це функція вищого порядку, яка приймає функцію як аргумент і повертає нову функцію, яка зазвичай викликає оригінальну функцію, але з додатковою поведінкою.
Це часто здійснюється за допомогою замикань (closures).
def decorator(func):
def wrapper():
# Додати поведінку перед викликом функції
print("Перед викликом функції")
func() # Викликаємо оригінальну функцію
# Додати поведінку після виклику функції
print("Після виклику функції")
return wrapper
@decorator
def say_hello():
print("Привіт!")
# Це еквівалентно нижченаведеному коду
def say_hello():
print("Привіт!")
say_hello = decorator(say_hello)
Підказки типів (Type Hinting)
Використання анотацій типів для перевірки типів.
def add(a: int, b: int) -> int:
return a + b
Менеджер пакетів (Package Manager):
pip:
pip
— це стандартний менеджер пакетів Python, який встановлює та керує пакетами з Python Package Index (PyPI) або інших репозиторіїв пакетів.- Він встановлює пакети, вказані у файлі
requirements.txt
, але не керує залежностями чи середовищем проекту так глибоко, як Poetry. - Типові задачі включають встановлення окремих пакетів, їх оновлення та видалення.
pip
може працювати з файломrequirements.txt
для управління залежностями, але за замовчуванням не блокує версії.
Poetry:
- Poetry — це більш просунутий інструмент для управління залежностями та пакування, що акцентує увагу на зручності використання, відтворюваності та обробці як залежностей, так і пакування для розповсюдження.
- Він управляє залежностями через файл
pyproject.toml
(що є сучасним способом управління метаданими проекту) та автоматично створює та управляє віртуальним середовищем. - Poetry керує блокуванням версій через
poetry.lock
, що гарантує однаковість установок у різних середовищах, роблячи його кращим варіантом для управління залежностями в командних проектах. - Poetry також спрощує процес публікації Python-пакетів на PyPI, роблячи управління проектами Python більш комплексним.
PyPI
(Python Package Index) — це офіційний репозиторій для програмного забезпечення та бібліотек Python. Це публічний репозиторій, де розробники можуть публікувати та ділитися своїми Python-пакетами, роблячи його центральним хабом для пакетів Python-спільноти. PyPI використовується такими інструментами, як pip
і Poetry
, для встановлення Python-пакетів.
MAKE:
make
— це не концепція, специфічна для Python, а загальнопризначений інструмент автоматизації збірки, який спочатку був розроблений для компіляції та побудови кодових проектів на таких мовах, як C і C++. Однак його також можна використовувати в Python-проектах або інших середовищах для автоматизації повторюваних задач.
У Python-проектах make
часто використовується для спрощення звичних завдань, таких як:
- Налаштування віртуального середовища.
- Встановлення залежностей.
- Запуск тестів або лінтерів.
- Побудова або деплой проекту.
# Makefile
.PHONY: install test run clean
# Встановлення залежностей
install:
pip install -r requirements.txt
# Запуск тестів
test:
pytest tests/
# Запуск додатка
run:
python main.py
# Очищення (наприклад, видалення тимчасових файлів)
clean:
rm -rf __pycache__ *.pyc
Використовуйте термінал для виконання цих задач, наприклад, make install
.
Післямова:
Це всі концепції, які, на мою думку, є важливими для тих, хто новий у Python, але має досвід програмування та знайомий з структурами даних. Якщо ж цей документ пропускає якісь важливі концепції, не соромтеся написати про це в коментарях, буду вдячний.
Перекладено з: Essential Python Concepts Every Beginner Developer Should Master