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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
👩‍💻 Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых

Рассказываем, как метод «Пяти почему» помог детям не бояться ошибок в коде и даже кайфовать от их анализа. Фрустрация — прочь, осознанность — в продакшн.

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
⚙️ Работа с JSON API на Python с помощью requests

requests — мощная и простая в использовании библиотека для выполнения HTTP-запросов. Часто применяется для получения данных из API в формате JSON.

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


⚙️ Пример кода

import requests  

url = "https://api.github.com/users/octocat"
response = requests.get(url)

# Получаем JSON-ответ
data = response.json()
print(data["login"]) # octocat


💬 Как это работает:

1. requests.get(url) делает GET-запрос к API.

2. .json() автоматически преобразует JSON-ответ в словарь.

3. Можно обращаться к данным как к обычному Python-объекту

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
12👏4😐3
Please open Telegram to view this post
VIEW IN TELEGRAM
23💯11😁6🔥2👍1
Вопрос с собеса

Что происходит при использовании mutable объектов как значения по умолчанию в аргументах функции?

Пример🔽
def append_to_list(value, my_list=[]):  
my_list.append(value)
return my_list

print(append_to_list(1)) # ➔ [1]
print(append_to_list(2)) # ➔ [1, 2]
print(append_to_list(3)) # ➔ [1, 2, 3]


Ответ🔽
В Python значения по умолчанию вычисляются один раз при определении функции. Если в качестве значения по умолчанию используется изменяемый объект (например, список), он сохраняется между вызовами функции.

В примере выше список my_list создаётся один раз и затем повторно используется при каждом вызове append_to_list(), что приводит к накапливанию значений.

Правильный способ избежать этого:

def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list

❗️ Никогда не используйте изменяемые объекты (list, dict, set...) как значения по умолчанию, если не уверены, что именно этого поведения хотите.


🐍 Ghostly Python | #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥621
👩‍💻 Шпаргалка по установке драйверов NVIDIA на ML сервер

Пошаговый гайд по установке драйверов NVIDIA (включая 50xx серию) и настройке Container Toolkit на Ubuntu и Debian-подобных. Быстро, по делу, без шаманства.

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4
🖼️ Библиотека: loguru

loguru — продвинутая библиотека для логирования, которая делает работу с логами проще, мощнее и чище, чем стандартный logging. Позволяет писать логи в пару строк и легко настраивать вывод.

ℹ️ Основные возможности:

🟢 Простая настройка логгера без конфигураций.
🟢 Поддержка ротации файлов, асинхронности и уровней логирования.
🟢 Встроенный форматтер с цветами и трассировками.
🟢 Поддержка отправки логов в файл, stdout, stderr и др.

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

from loguru import logger

logger.debug("Это отладочное сообщение")
logger.info("Информация о процессе")
logger.warning("Предупреждение!")
logger.error("Произошла ошибка")

# Лог в файл с автоматической ротацией
logger.add("debug.log", rotation="1 MB")


✔️ Установка:

pip install loguru


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
14🤣14👍1
➡️ Python Weeklyеженедельная рассылка с лучшими новостями и материалами по Python

Python Weekly — это curated-дайджест, выходящий каждую неделю. В нём собраны свежие статьи, туториалы, релизы библиотек, вакансии и конференции, связанные с Python.

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

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

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
👩‍💻 Стандартизация без боли: как строгий синтаксис экономит время и нервы

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

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📱 Фишка: threading.Timer — запуск кода с задержкой

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

import threading  

def say_hello():
print("Привет через 5 секунд!")

# Запускаем функцию через 5 секунд
timer = threading.Timer(5.0, say_hello)
timer.start()

print("Ожидаем...")


📌 Как это работает?

🟢 threading.Timer(delay, function) создаёт таймер с задержкой delay в секундах.
🟢 .start() запускает таймер в фоновом потоке.
🟢 Полезно для отложенного выполнения без блокировки основного потока

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
71
Please open Telegram to view this post
VIEW IN TELEGRAM
😴174👍2😁2🔥1
⚙️ Автоматизация Excel-задач с помощью openpyxl

openpyxl — мощная библиотека для чтения и записи Excel-файлов (.xlsx) на Python. Подходит для автоматизации отчётов, обработки табличных данных и создания аналитических инструментов.

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


⚙️ Пример: чтение данных из Excel

from openpyxl import load_workbook  

# Загружаем существующий файл
wb = load_workbook("sales.xlsx")
ws = wb["Продажи"]

# Читаем строки
for row in ws.iter_rows(values_only=True):
print(row)


💬 Как это работает:

1. Workbook() создаёт новый Excel-файл, load_workbook() — загружает существующий.
2. ws.append() добавляет строки, ws.iter_rows() перебирает ячейки.
3. wb.save() сохраняет изменения

Полезно для бухгалтерии, аналитики, экспорта отчётов из Python-скриптов


🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥86
👩‍💻 Как собрать ДНК с помощью кода: симуляция молекулярных операций на Python

Симуляция ДНК-процессов в коде: ПЦР, сдвиги, мутации и лигирование — всё вручную, на Python и без Biopython. Вопрос один — можно ли собрать лабораторию из строк.

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Вопрос с собеса

В чём разница между @staticmethod и @classmethod в Python?

Пример🔽
class MyClass:
@staticmethod
def static_method():
return "Просто метод"

@classmethod
def class_method(cls):
return f"Это метод класса {cls.__name__}"

print(MyClass.static_method()) # ➔ Просто метод
print(MyClass.class_method()) # ➔ Это метод класса MyClass


Ответ🔽
@staticmethod — обычная функция, встроенная в класс. Она не получает доступ ни к экземпляру (self), ни к самому классу (cls). Используется, когда метод логически связан с классом, но не зависит от него.

@classmethod — получает в качестве первого аргумента сам класс (cls), а не экземпляр. Используется, когда метод должен знать о самом классе или создавать экземпляры (фабричные методы).

Часто @classmethod применяют для создания альтернативных конструкторов или настройки поведения, зависящего от самого класса.

❗️ Если метод не использует ни self, ни cls — делайте его @staticmethod. Если работает с самим классом, но не с экземплярами — @classmethod.


🐍 Ghostly Python | #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍2
🖼️ Библиотека: boltons

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

ℹ️ Основные возможности:

🟢 iterutils — мощные функции для работы с итераторами.
🟢 dictutils — расширенные словари, включая OrderedMultiDict.
🟢 fileutils, timeutils, urlutils — работа с файлами, временем и URL.
🟢 Лёгкая и независимая от других зависимостей.

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

from boltons.iterutils import flatten  

nested = [1, [2, [3, 4], 5], 6]
flat = list(flatten(nested))
print(flat) # ➔ [1, 2, 3, 4, 5, 6]


✔️ Установка:

pip install boltons


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥1
👩‍💻 Анализ текстовых данных на примере ОМ

Проведен полный разбор текстов из сообщества «Осознанная меркантильность»: частотный анализ, темы, тональность, граф смыслов. Есть код. Есть инсайты. Волки действительно воют.

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
6
➡️ Python Cheatsheet — компактная, но глубокая шпаргалка по Python

Этот сайт — не просто список синтаксиса, а настоящая энциклопедия приёмов Python: от базовых конструкций до генераторов, itertools, сетевого программирования и асинхронности.

🟢 Всё на одной странице — удобно искать и скроллить.
🟢 Включает лучшие практики, “питоничные” идиомы и подводные камни.
🟢 Подойдёт и как справочник, и как учебник для освежения знаний.

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

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥43
Please open Telegram to view this post
VIEW IN TELEGRAM
😁173
📱 Фишка: sched — планировщик событий в Python

Модуль sched из стандартной библиотеки позволяет создавать простые планировщики задач с точным управлением временем. Удобен для периодических или отложенных действий без потоков.

import sched
import time

scheduler = sched.scheduler(time.time, time.sleep)

def task():
print("Задача выполнена!")

# Запланировать выполнение через 3 секунды
scheduler.enter(3, 1, task)

print("Ожидание...")
scheduler.run()


📌 Как это работает?

🟢 sched.scheduler() создаёт планировщик событий.
🟢 .enter(delay, priority, func) планирует выполнение функции через delay секунд.
🟢 .run() запускает выполнение задач по очереди

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6