Ghostly Python
9.01K subscribers
535 photos
24 videos
599 links
Погружаемся в мир Python: задачи, фишки, библиотеки и террабайты полезного материала.

Сотрудничество: @heywan_n1

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
💻 Фишка: Использование itertools.chain() для объединения итерируемых объектов

Когда нужно объединить несколько списков, множеств или других итерируемых объектов, в Python есть простое и эффективное решение — функция itertools.chain(). Она позволяет объединить итерируемые объекты в один поток, не создавая промежуточных списков, что делает её особенно полезной при работе с большими объемами данных.

📌 Почему это удобно

• Работает лениво (lazy evaluation), обрабатывая элементы по одному, без создания большого результирующего объекта.

• Работает с любыми итерируемыми объектами — списками, кортежами, генераторами.

⚙️ Пример использования

Объединение списков:

from itertools import chain

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = chain(list1, list2)

print(list(result))
# Вывод: [1, 2, 3, 4, 5, 6]


Объединение разных итерируемых объектов:

set1 = {7, 8, 9}
tuple1 = (10, 11, 12)

result = chain(set1, tuple1)
print(list(result))
# Вывод: [7, 8, 9, 10, 11, 12]


Можно использовать, когда нужно объединить данные из разных источников (например, из файлов или запросов). Или же, при необходимости экономии памяти, если результирующий объект слишком велик. А также при работе с потоками данных (например, логами или веб-запросами).

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5🤯1
📖 Как устроен Python: гид для разработчиков

Идеальный гид для тех, кто хочет не просто писать код, но и понимать, как работает Python изнутри.

Узнайте о секретах языка, лучших практиках и советах от эксперта, который с 2000 года делится знаниями с программистами и корпорациями. Идеально для начинающих и опытных разработчиков, которые хотят углубить свои знания.

🗄 Скачать PDF из архива

🐍 Ghostly Python | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
📱 10 Уникальных Библиотек Python Которые Не Стоит Пропускать

В данном видео рассмотрим 10 очень интересных Python библиотек, которые способны улучшить ваши проекты. Они способы повысить читаемость и эффективность вашего кода, в некоторых случаях они ускоряют процесс разработки, так как предоставляют готовые инструменты.

➡️ Ссылка на видео

Чуть позже загружу в комменты под постом, для тех, кто не может смотреть на ютубе.


🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3🏆2
🎮 Взламываем игры с помощью Python

В этой статье, автор вспоминает популярную программу для "взлома" игр ArtMoney, но вместо её использования предлагает создать собственный инструмент на Python с библиотекой Pymem (ранее мы ее рассматривали в этом посте).

Цель — модифицировать память игры Titan Quest и "сделать персонажа миллионером".

Вы узнаете, как работать с памятью процессов, WindowsAPI и библиотекой Pymem.


🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥4🔥4
🖥 Анализатор mypy для проверки типов в коде Python

В Python, благодаря его динамической природе, можно писать код быстро и гибко. Однако, это может привести к трудноуловимым ошибкам. Тут на помощь приходит mypy — инструмент, который смотрит, правильно ли ты указал типы, и ловит косяки ещё до запуска кода.

mypy — это статический анализатор кода для Python. Он проверяет аннотации типов в вашем коде и помогает обнаружить несоответствия еще до выполнения программы.


⚙️ Пример использования

1. Установим библиотеку:

pip install mypy


2. Добавляем аннотации типов в коде:

def greet(name: str, age: int) -> str:
return f"Привет, {name}! Тебе {age} лет."


3. Проверяем файл с помощью mypy:

mypy main.py


➡️ Если где-то накосячил с типами, mypy покажет, где именно. Например:

error: Argument 1 to "greet" has incompatible type "int"; expected "str"


🤔 Зачем оно нужно?

• Ловит баги до выполнения.
• Код становится чище и понятнее.
• Можно внедрять постепенно — не ломает существующий проект.

➡️ Ссылка на документацию

🐍 Ghostly Python | #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
CodeHS: платформа с задачами для практики

Этот ресурс предоставляет небольшое количество задач для практики по базовым темам. Представленные задачи разбиты по уровням и категориям. Среди которых:

• Основы
• Функции
• Строки
• Математика
• Циклы
• Списки
• Словари

В общем, не плохой вариант для начинающих, чтобы попрактиковаться.

⛓️ Ссылка на ресурс

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
💡 Идея пет-проекта: Помощник по управлению финансами

Суть проекта в том, чтобы создать персонального помощника для управления финансами, который поможет пользователям контролировать свои расходы, планировать бюджет и анализировать финансовые привычки.

⚙️ Основной функционал

💬 Отслеживание расходов: Добавление расходов с указанием категории, суммы и даты.

💬 Анализ расходов: Статистика по категориям расходов и времени, для лучшего понимания своих финансов.

💬 Планирование бюджета: Создание ежемесячного бюджета на основе доходов и обязательств.

💬 Напоминания: Уведомления о предстоящих счетах и платежах.

💬 Безопасность данных: Все данные защищены с помощью шифрования.

💬 Рекомендации по инвестициям: Основы инвестирования и советы по улучшению финансового положения.

Что используем:

Язык: Python
Библиотеки: Flask, SQLAlchemy, matplotlib или Plotly, Twilio или Telegram API, Yahoo Finance API.

⚡️ Сложность: средняя

Если вам понравился такой формат поста и вы хотите периодически получать идеи проектов для практики, оставьте побольше реакций 🔥


🐍 Ghostly Python | #идеи
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍41
😬😬😬

🐍 Ghostly Python | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣25🔥4
📁 Контекстные менеджеры в Python

Это инструмент для работы с ресурсами, которые требуют открытие и закрытие, например, с файлами, сетевыми соединениями, базами данных и многими другими. Мы рассмотрим эту тему на примере работы с файлами.

При работе с файлами, важно их закрывать после использования. Быть может, это не так очевидно, но если этого не сделать, то есть шанс возникновения ошибки или утечки памяти. Так вот, контекстный менеджер автоматизирует этот процесс и защищает от подобных ошибок.

⚙️ Пример использования

К примеру, нам нужно прочитать текстовый файл и вывести его содержимое. Сделаем это с использованием контекстного менеджера with:

with open("example.txt", "r") as file:
content = file.read()
print(content)


Здесь контекстный менеджер автоматически позаботится о закрытии файла, даже если внутри блока возникнет ошибка. После выполнения кода, файл будет закрыт, и ресурс будет освобождён.

Тоже самое, но без контекстного менеджера:

file = open("example.txt", "r")
content = file.read()
print(content)
file.close() # Нужно не забыть закрыть файл вручную!


Согласитесь, даже выглядит такой вариант, не очень удобно.

💬 Как работает with?

Когда вы используете with, Python создаёт объект контекстного менеджера и вызывает два метода:

__enter__(): Когда входите в блок with, этот метод открывает ресурс (например, файл).
__exit__(): Когда выходите из блока, этот метод закрывает ресурс (например, закрывает файл), освобождая его.

✔️ Вывод

Контекстные менеджеры делают код более безопасным, читаемым и минимизируют ошибки, связанные с забытыми операциями закрытия или освобождения ресурсов. Используйте их для управления файлами, сетевыми соединениями, многозадачностью и любыми другими ресурсами, которые нужно открывать и закрывать.

Друзья, пост получился довольно длинным, но надеюсь полезным. Поддержите реакциями 🔥 Возможно придумаю какой-то вариант, при котором посты будут компактнее, а подробное изложение где-то в другом месте.


🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥9
📱 Pytonchik — это платформа, на которой собраны полезные материалы для Python-разработчиков. Здесь вы найдете туториалы, полезные методы и подборки курсов, чтобы углубить свои знания и улучшить навыки программирования.

⛓️ Ссылка на ресурс

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥72👍2🤩1
📱 Объектно ориентированное программирование в Python

Нашел интересную презентацию, которая погружает в основы ООП на Python.

➡️ Содержание:

— Что такое ООП и зачем оно нужно.
— Разбор классов и их конструкций.
— Ключевые принципы ООП: наследование, инкапсуляция, полиморфизм.
— Достоинства и недостатки подхода.

📂 Скачать PDF из архива

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤩2🫡2
🖼️ Библиотека: Scrapy

Scrapy — мощная библиотека для Python, созданная для быстрого и удобного извлечения данных с веб-сайтов.

💡 Основные возможности

🟠Асинхронная обработка: Работает с множеством запросов одновременно.
🟠Гибкие инструменты парсинга: Поддержка XPath и CSS для извлечения данных из HTML.
🟠Пайплайны данных: Обработка и сохранение данных в удобных форматах (JSON, CSV и др.).
🟠Автоматизация: Работа с формами и аутентификацией.

✔️ Установка

pip install scrapy


📄 Ссылка на документацию

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📱 Фишка: кэширование результатов функций

Когда у нас в коде часто вызывается одна и та же функция с одинаковыми аргументами, мы можем ускорить её работу с помощью кэширования. Для этого нам понадобиться встроенный декоратор functools.lru_cache(), который сохраняет результаты выполнения функции, чтобы повторные вызовы с теми же аргументами не пересчитывались.

⚙️ Пример использования

from functools import lru_cache

@lru_cache(maxsize=128) # Ограничиваем размер кэша
def factorial(n):
if n == 0:
return 1
return n * factorial(n - 1)

print(factorial(50)) # Результат сохранится в кэше


➡️ Как это работает:

• При первом вызове функции с аргументом результат сохраняется в кэше.
• При повторном вызове с тем же аргументом значение берётся из кэша, без повторного вычисления.

Когда кэш заполняется, старые записи удаляются по принципу LRU (Least Recently Used — наименее часто используемые).

✔️ Можно использовать:

— для функций с повторяющимися вызовами, где аргументы неизменяемы
— для ускорения рекурсивных алгоритмов
— для кэширования результатов медленных операций (запросов к API, чтения из базы данных)

Если полезно, оставляйте реакции, друзья 🔥


🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5
✈️ 10 способов писать идеальный код на Python

Статья представляет собой подходы и советы, которые помогут вам писать чистый и эффективный Python-код.

📌 Из статьи вы узнаете:

➡️ Как улучшить читаемость с помощью стиля кода.
➡️ Когда и зачем использовать аннотации типов.
➡️ Лучшие практики работы с функциями, классами и исключениями.

🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
📄 Sphinx: Создание документации для Python-проектов

Sphinx — мощный инструмент для автоматического создания документации. Он генерирует красивые HTML, PDF и другие форматы из файлов с разметкой reStructuredText или Markdown.

📌 Что умеет?

— Генерация документации в HTML, PDF, LaTeX и ePub.
— Автоматическая генерация API-документации из исходного кода.
— Поддержка различных форматов разметки (reStructuredText, Markdown).

⚙️ Пример использования:

1. Установка

pip install sphinx


2. Создание проекта:

sphinx-quickstart


3. Генерация документации:

make html


➡️ Ссылка на документацию

🐍 Ghostly Python | #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
🗂 Работа с файлами CSV в Python с помощью pandas

Использование библиотеки pandas для работы с CSV-файлами в Python значительно облегчает обработку, анализ и манипуляцию данными. В этом посте рассмотрим базовые примеры работы с библиотекой.

✔️ Установка библиотеки

pip install pandas


⚙️ Пример использования

import pandas as pd

# Чтение CSV файла
df = pd.read_csv('data.csv')

# Вывод первых 5 строк
print(df.head())

# Запись данных обратно в CSV файл
df.to_csv('output.csv', index=False)


➡️ Этот скрипт загружает CSV-файл в DataFrame, выводит первые 5 строк и записывает данные обратно в новый файл.

🔍 Фильтрация данных

Фильтрация позволяет выбрать только те строки, которые удовлетворяют определённым условиям.

# Фильтрация строк, где значение в столбце 'age' больше 30
filtered_df = df[df['age'] > 30]

print(filtered_df)


➡️ В этом примере выбираются строки, где значение в столбце age превышает 30.

Объединение нескольких файлов

Если у вас есть несколько CSV-файлов, их можно легко объединить в один.

import glob

# Получение списка всех CSV файлов в текущей директории
csv_files = glob.glob('*.csv')

# Чтение и объединение всех CSV файлов
df_list = [pd.read_csv(file) for file in csv_files]
combined_df = pd.concat(df_list, ignore_index=True)

print(combined_df)


Здесь все CSV-файлы в текущей директории загружаются и объединяются в один DataFrame.

➡️ Ссылка на документацию Pandas

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🖥 Самые частые ошибки новичков в Python (и как их избежать)

В этом видео рассматриваются распространённые ошибки, которые часто допускают начинающие разработчики в Python. Вы узнаете, как эти ошибки замедляют ваш проект, создают проблемы для анализа кода и как их исправить, чтобы стать более эффективным программистом.

📱 Ссылка на видео

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
💡 Идея пет-проекта: бот для загрузки видео с YouTube и извлечения его аудиодорожки

Суть данного проекта заключается в том, что необходимо создать телеграм-бота, который позволит пользователям скачивать видео с YouTube указав ссылку на него. А также, извлекать только аудиодорожку из видео в формате .mp3.

⚙️ Основной функционал

💬 Загрузка видео: Пользователь отправляет боту ссылку на видео с YouTube, и бот загружает это видео.

💬 Выбор формата: Пользователь может указать формат и качество видео, которое он хочет загрузить (например, 720p, 1080p). А также выбрать загрузку только аудиодорожки.

💬 Прогресс загрузки: Бот будет сообщать пользователю о прогрессе загрузки видео.

💬 Получение файла: По завершении загрузки, бот должен прислать файл пользователю.

Что используем:

Язык: Python
Библиотеки: pytube, aiogram или pyTelegramBotApi

⚡️ Сложность: средняя

Если хотите урок с полной реализацией этой идеи, оставляйте реакции 🔥


🐍 Ghostly Python | #идеи
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥89👍31
🐍 Django-аутентификация: просто о сложном

Аутентификация — ключевой аспект любого веб-приложения. В этой статье рассматриваются различные подходы к реализации аутентификации в Django, начиная с базовых встроенных методов и переходя к более продвинутым, таким как двухфакторная аутентификация (2FA) и OAuth2.

🖥 Перейти к статье

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7