Модули functools и itertools ⚙️
Эти модули дают вам мощные инструменты для работы с функциями и итераторами. Это настоящее волшебство Python! ✨
🔍 functools:
1. Каррирование (например, functools.partial).
2. Кэширование (например, functools.lru_cache).itertools:
3. Ленивые итераторы (например, itertools.chain, itertools.islice).
4. Комбинаторика (например, itertools.permutations).
🔑 Результат выполнения:
🎥 Подробнее:
https://www.youtube.com/watch?v=Qu3dThVy6KQ
Эти модули дают вам мощные инструменты для работы с функциями и итераторами. Это настоящее волшебство Python! ✨
🔍 functools:
1. Каррирование (например, functools.partial).
2. Кэширование (например, functools.lru_cache).itertools:
3. Ленивые итераторы (например, itertools.chain, itertools.islice).
4. Комбинаторика (например, itertools.permutations).
from functools import lru_cache
from itertools import permutations
@lru_cache(maxsize=None)
def fib(n):
if n < 2:
return n
return fib(n-1) + fib(n-2)
print(list(permutations([1, 2, 3])))
🔑 Результат выполнения:
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
🎥 Подробнее:
https://www.youtube.com/watch?v=Qu3dThVy6KQ
🌀 Модуль dataclasses
Создавать классы вручную с полями, конструктором и repr скучно. Модуль dataclasses делает это за вас.
Пример:
💡 Преимущества:
1. Генерация конструктора и методов (__init__, repr, __eq__).
2. Удобно для хранения данных.
Создавать классы вручную с полями, конструктором и repr скучно. Модуль dataclasses делает это за вас.
Пример:
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int
p = Point(1, 2)
print(p) # Point(x=1, y=2)
💡 Преимущества:
1. Генерация конструктора и методов (__init__, repr, __eq__).
2. Удобно для хранения данных.
👍1
Чему равен mystery(5)?
❓ Вопрос: Каков результат выполнения mystery(5)? Что произойдет, если передать большое число?
📌 Подсказка:Вспомните ограничения рекурсии в Python.
def mystery(n):
if n == 0:
return 0
return n + mystery(n - 1)
❓ Вопрос: Каков результат выполнения mystery(5)? Что произойдет, если передать большое число?
📌 Подсказка:
Анализ данных с помощью pandas 📉
Библиотека pandas — это мощный инструмент для анализа данных в Python. Он позволяет работать с таблицами (DataFrame), выполнять статистический анализ и манипуляции с данными.
🔍 Применение:
1. Обработка и анализ данных.
2. Загрузка и экспорт данных в различные форматы (CSV, Excel, SQL).
🔑 Результат выполнения:
Библиотека pandas — это мощный инструмент для анализа данных в Python. Он позволяет работать с таблицами (DataFrame), выполнять статистический анализ и манипуляции с данными.
🔍 Применение:
1. Обработка и анализ данных.
2. Загрузка и экспорт данных в различные форматы (CSV, Excel, SQL).
import pandas as pd
# Создаем DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
# Получаем статистику
print(df.describe())
# Сохранение в CSV
df.to_csv('data.csv', index=False)
🔑 Результат выполнения:
Age
count 3.0
mean 30.0
std 5.0
min 25.0
25
Модуль pathlib для работы с путями 🛤️
Модуль pathlib предоставляет удобный интерфейс для работы с путями файлов и директорий. Это позволяет легко манипулировать путями, определять их компоненты и выполнять операции с ними.
🔍 Применение:
Работа с путями к файлам.
Проверка существования файлов и директорий.
Обработка путей в кросс-платформенных приложениях.
🔑 Результат выполнения:
Если директория не существует, она будет создана.
Модуль pathlib предоставляет удобный интерфейс для работы с путями файлов и директорий. Это позволяет легко манипулировать путями, определять их компоненты и выполнять операции с ними.
🔍 Применение:
Работа с путями к файлам.
Проверка существования файлов и директорий.
Обработка путей в кросс-платформенных приложениях.
from pathlib import Path
# Определяем путь
path = Path("example_directory")
# Проверяем, существует ли директория
if not path.exists():
path.mkdir()
# Проверяем тип файла
if path.is_dir():
print("It is a directory.")
🔑 Результат выполнения:
Если директория не существует, она будет создана.
Функциональный финал
Что напечатает код?
❓ Вопрос: Какой результат будет напечатан? Почему?
📌 Подсказка: Что происходит с определением функции в Python?
Что напечатает код?
def func(x):
return x * 2
func = lambda x: x + 2
print(func(10))
❓ Вопрос: Какой результат будет напечатан? Почему?
📌 Подсказка:
🔥1
Работа с файлами и директорими через os и shutil 🗂️
Модули os и shutil позволяют работать с файловой системой: создавать, удалять файлы и папки, копировать их, менять атрибуты.
🔍 Применение:
Управление файлами в проектах.
Автоматизация работы с файлами.
Обработка ошибок при работе с файлами.
🔑 Результат выполнения:
Директория my_folder создается, файл копируется, а затем директория удаляется.
Модули os и shutil позволяют работать с файловой системой: создавать, удалять файлы и папки, копировать их, менять атрибуты.
🔍 Применение:
Управление файлами в проектах.
Автоматизация работы с файлами.
Обработка ошибок при работе с файлами.
import os
import shutil
# Создание директории
os.makedirs('my_folder', exist_ok=True)
# Копирование файла
shutil.copy('source.txt', 'destination.txt')
# Удаление директории
shutil.rmtree('my_folder')
🔑 Результат выполнения:
Директория my_folder создается, файл копируется, а затем директория удаляется.
Работа с регулярными выражениями 🔍
Регулярные выражения (regex) позволяют искать, заменять и обрабатывать строки по заданным шаблонам. Это мощный инструмент для работы с текстом.
🔍 Применение:
Поиск и замена в строках.
Валидация данных (например, email).
Извлечение информации из текста.
🔑 Результат выполнения:
Регулярные выражения (regex) позволяют искать, заменять и обрабатывать строки по заданным шаблонам. Это мощный инструмент для работы с текстом.
🔍 Применение:
Поиск и замена в строках.
Валидация данных (например, email).
Извлечение информации из текста.
import re
pattern = r'\\d+' # Ищем все числа
text = "The house number is 42 and the zip code is 12345."
matches = re.findall(pattern, text)
print(matches) # Output: ['42', '12345']
🔑 Результат выполнения:
['42', '12345']
Генерация графиков с помощью matplotlib 📈
Библиотека matplotlib позволяет создавать красивые графики и визуализации данных, включая линейные графики, гистограммы, диаграммы рассеяния и многое другое.
🔍 Применение:
Визуализация результатов анализа данных.
Построение графиков для отчетов и исследований.
🔑 Результат выполнения:
Линейный график, отображающий зависимость
y=2x.
Библиотека matplotlib позволяет создавать красивые графики и визуализации данных, включая линейные графики, гистограммы, диаграммы рассеяния и многое другое.
🔍 Применение:
Визуализация результатов анализа данных.
Построение графиков для отчетов и исследований.
import matplotlib.pyplot as plt
# Данные для графика
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Построение графика
plt.plot(x, y, label='y = 2x', color='blue')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Linear Graph')
plt.legend()
plt.show()
🔑 Результат выполнения:
Линейный график, отображающий зависимость
y=2x.
Машинное обучение с scikit-learn 📊
Библиотека scikit-learn предоставляет инструменты для машинного обучения, такие как обучение моделей, классификация, регрессия, кластеризация и многое другое.
🔍 Применение:
Предсказание цен.
Анализ данных.
Построение моделей машинного обучения.
🔑 Результат выполнения:
Библиотека scikit-learn предоставляет инструменты для машинного обучения, такие как обучение моделей, классификация, регрессия, кластеризация и многое другое.
🔍 Применение:
Предсказание цен.
Анализ данных.
Построение моделей машинного обучения.
from sklearn.linear_model import LinearRegression
import numpy as np
# Данные
x = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
# Модель линейной регрессии
model = LinearRegression()
model.fit(x, y)
# Предсказание
predicted = model.predict([[6]])
print("Predicted value for x=6:", predicted[0])
🔑 Результат выполнения:
Predicted value for x=6: 12.0
🔥1
Работа с веб-сокетами с помощью websockets 🌐
Модуль websockets позволяет работать с WebSocket-соединениями, что упрощает создание приложений с обменом данными в реальном времени.
🔍 Применение:
Чат-приложения.
Онлайн-игры.
Реализация уведомлений.
🔑 Результат выполнения:
Модуль websockets позволяет работать с WebSocket-соединениями, что упрощает создание приложений с обменом данными в реальном времени.
🔍 Применение:
Чат-приложения.
Онлайн-игры.
Реализация уведомлений.
import asyncio
import websockets
async def hello():
uri = "ws://echo.websocket.events"
async with websockets.connect(uri) as websocket:
await websocket.send("Hello WebSocket!")
response = await websocket.recv()
print("Received:", response)
asyncio.run(hello())
🔑 Результат выполнения:
Received: Hello WebSocket!
🔥1
🧠 Декораторы: украшение функций 🎀
Декораторы позволяют добавлять новую функциональность к функциям без изменения их кода. Это мощный инструмент для повышения читаемости и повторного использования кода.
🔍 Применение:
Логирование.
Проверка прав доступа.
Измерение времени выполнения.
🔑 Результат выполнения:
Декораторы позволяют добавлять новую функциональность к функциям без изменения их кода. Это мощный инструмент для повышения читаемости и повторного использования кода.
🔍 Применение:
Логирование.
Проверка прав доступа.
Измерение времени выполнения.
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"Execution time: {end - start:.2f} seconds")
return result
return wrapper
@timer
def slow_function():
time.sleep(2)
print("Function finished!")
slow_function()
🔑 Результат выполнения:
Function finished!
Execution time: 2.00 seconds
👍2
🧪 Тестирование с использованием unittest 🧹
Модуль unittest предоставляет встроенные инструменты для написания тестов и проверки работоспособности кода.
🔍 Применение:
Автоматическое тестирование функций.
Обеспечение стабильности кода.
Выявление ошибок до развертывания.
🔑 Результат выполнения:
Модуль unittest предоставляет встроенные инструменты для написания тестов и проверки работоспособности кода.
🔍 Применение:
Автоматическое тестирование функций.
Обеспечение стабильности кода.
Выявление ошибок до развертывания.
import unittest
def add(a, b):
return a + b
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
self.assertEqual(add(-1, 1), 0)
if __name__ == "__main__":
unittest.main()
🔑 Результат выполнения:
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
🔥1
🌟Работа с таймерами через sched ⏳
Модуль sched позволяет планировать выполнение задач с точным учетом времени.
🔍 Применение:
Запуск задач по расписанию.
Автоматизация повторяющихся процессов.
Создание таймеров.
🔑 Результат выполнения:
Через 3 секунды вывод:
Модуль sched позволяет планировать выполнение задач с точным учетом времени.
🔍 Применение:
Запуск задач по расписанию.
Автоматизация повторяющихся процессов.
Создание таймеров.
import sched
import time
scheduler = sched.scheduler(time.time, time.sleep)
def print_message():
print("Task executed!")
# Планируем задачу через 3 секунды
scheduler.enter(3, 1, print_message)
scheduler.run()
🔑 Результат выполнения:
Через 3 секунды вывод:
Task executed!
❤3
🚦 Работа с потоками через threading 🧵
Модуль threading позволяет создавать потоки, что упрощает выполнение нескольких задач одновременно.
🔍 Применение:
Многозадачность.
Реакция на события.
Параллельная обработка данных.
🔑 Результат выполнения:
Модуль threading позволяет создавать потоки, что упрощает выполнение нескольких задач одновременно.
🔍 Применение:
Многозадачность.
Реакция на события.
Параллельная обработка данных.
import threading
import time
def task(name):
print(f"Thread {name} starting")
time.sleep(2)
print(f"Thread {name} finished")
thread1 = threading.Thread(target=task, args=("A",))
thread2 = threading.Thread(target=task, args=("B",))
thread1.start()
thread2.start()
thread1.join()
thread2.join()
🔑 Результат выполнения:
Thread A starting
Thread B starting
Thread A finished
Thread B finished
👍3❤1
Обработка URL с urllib.parse 🌐
Модуль urllib.parse помогает разбирать и создавать URL-адреса.
🔍 Применение:
Создание запросов к API.
Разбор адресов.
Управление параметрами.
🔑 Результат выполнения:
Модуль urllib.parse помогает разбирать и создавать URL-адреса.
🔍 Применение:
Создание запросов к API.
Разбор адресов.
Управление параметрами.
from urllib.parse import urlparse
url = "https://example.com/path?name=Alice"
parsed_url = urlparse(url)
print("Domain:", parsed_url.netloc)
print("Path:", parsed_url.path)
print("Query:", parsed_url.query)
🔑 Результат выполнения:
Domain: example.com
Path: /path
Query: name=Alice
🔥3
Челлендж: «Поиск пиков»
Привет, кодеры! Сегодня будем работать с массивами.
📈 Суть задачи:
Напишите функцию, которая находит все пики в массиве. Пиком считается элемент, который больше соседних слева и справа. Граничные элементы не считаются.
Пример:
✅ Усложнение для профи:
Найдите индекс каждого пика, а не только их значения.
Реализуйте алгоритм с минимальной сложностью.
💡 Подсказки:
Пройдитесь по массиву циклом, начиная со второго элемента и заканчивая предпоследним.
Используйте индексы, чтобы проверять соседние элементы.
Если хотите оптимизировать: изучите двоичный поиск для таких задач.
Кто сможет найти все пики? Пишите свои ответы! 🏔️
Привет, кодеры! Сегодня будем работать с массивами.
📈 Суть задачи:
Напишите функцию, которая находит все пики в массиве. Пиком считается элемент, который больше соседних слева и справа. Граничные элементы не считаются.
Пример:
Input: [1, 3, 7, 1, 2, 6, 3, 2]
Output: [7, 6]
✅ Усложнение для профи:
Найдите индекс каждого пика, а не только их значения.
Реализуйте алгоритм с минимальной сложностью.
💡 Подсказки:
Используйте индексы, чтобы проверять соседние элементы.
Если хотите оптимизировать: изучите двоичный поиск для таких задач.
Кто сможет найти все пики? Пишите свои ответы! 🏔️
👍1🔥1
Секретный импорт
Что напечатает код?
❓ Вопрос: Что произойдет при выполнении этого кода? Какую информацию он содержит?
Что напечатает код?
import this
❓ Вопрос: Что произойдет при выполнении этого кода? Какую информацию он содержит?
Шаблоны строк с string.Template 🖋️
Модуль string.Template позволяет создавать строки с шаблонами для упрощения подстановок.
🔍 Применение:
Генерация писем.
Форматирование отчетов.
Упрощение работы с текстом.
🔑 Результат выполнения:
Модуль string.Template позволяет создавать строки с шаблонами для упрощения подстановок.
🔍 Применение:
Генерация писем.
Форматирование отчетов.
Упрощение работы с текстом.
from string import Template
template = Template("Hello, $name! Welcome to $place.")
message = template.substitute(name="Alice", place="Python World")
print(message)
🔑 Результат выполнения:
Hello, Alice! Welcome to Python World.
👍5
Работа с изображениями через Pillow 🖌️
Библиотека Pillow предоставляет мощные инструменты для обработки изображений.
🔍 Применение:
Редактирование изображений.
Создание миниатюр.
Добавление фильтров.
🔑 Результат выполнения:
Создается миниатюра изображения с размерами 100x100 пикселей.
Библиотека Pillow предоставляет мощные инструменты для обработки изображений.
🔍 Применение:
Редактирование изображений.
Создание миниатюр.
Добавление фильтров.
from PIL import Image
# Открываем изображение и создаем миниатюру
image = Image.open("example.jpg")
image.thumbnail((100, 100))
image.save("thumbnail.jpg")
print("Thumbnail создан.")
🔑 Результат выполнения:
Создается миниатюра изображения с размерами 100x100 пикселей.
👍2