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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
32😁9
📱 Фишка: functools.reduce — свёртка последовательности в одно значение

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

from functools import reduce  

numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers)
print(product) # 24


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

🟢 reduce() берёт два элемента, применяет функцию и использует результат как аргумент для следующего шага.
🟢 Работает с любыми итерируемыми объектами.
🟢 Полезно для накопления значений: суммы, произведения и других операций

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥31
👩‍💻 Сlite — «zero-dependency» фреймворк для создания CLI

В статье автор делится своим опытом создания Clite — лёгкого фреймворка на Python для CLI без зависимостей: альтернатива Typer и Click с максимумом возможностей.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1
⚙️ Парсинг HTML на Python с помощью BeautifulSoup

BeautifulSoup — мощная библиотека для обработки и парсинга HTML и XML. Подходит для извлечения данных с веб-страниц, парсинга таблиц и автоматизации сбора информации.

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


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

import requests  
from bs4 import BeautifulSoup

# Загружаем страницу
url = "https://example.com"
response = requests.get(url)

# Разбираем HTML
soup = BeautifulSoup(response.text, "html.parser")

# Извлекаем заголовок
title = soup.find("h1").text
print(title)


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

1. requests.get(url) загружает HTML-страницу.
2. BeautifulSoup(response.text, "html.parser") парсит HTML-код.
3. soup.find("h1").text извлекает текст из первого тега <h1>.

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍163🤝1
👩‍💻 Как я научился анализировать собственные собесы с помощью Whisper (и почему это нужно каждому айтишнику и не только)

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

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

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

Как работает оператор is в Python и чем он отличается от оператора ==?

Пример🔽
a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b) # ➔ True
print(a is b) # ➔ False
print(a is c) # ➔ True


Ответ🔽
Оператор == проверяет равенство значений двух объектов, тогда как оператор is проверяет идентичность объектов, то есть указывает на то, ссылаются ли переменные на один и тот же объект в памяти.

В примере выше:

a == b возвращает True, так как списки содержат одинаковые элементы.

a is b возвращает False, так как это разные объекты в памяти.

a is c возвращает True, так как переменная c ссылается на тот же объект, что и a.

❗️ Используйте is, когда нужно проверить идентичность (например, с объектами None, одиночными экземплярами), и ==, когда важны сами значения


🐍 Ghostly Python | #собес
Please open Telegram to view this post
VIEW IN TELEGRAM
29👍6🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁352🔥1
🖼️ Библиотека: termcolor

termcolor — лёгкая и удобная библиотека для цветного форматирования текста в терминале. Позволяет добавлять цвета и стили к выводу прямо в консоли.

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

🟢 Поддержка цветов: red, green, yellow, blue и др.
🟢 Форматирование: bold, underline, reverse и пр.
🟢 Работает в терминалах Windows, macOS и Linux.
🟢 Полезна для CLI-интерфейсов, логов и выделения важной информации.

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

from termcolor import colored  

print(colored("Успешно!", color="green"))
print(colored("Внимание!", color="yellow", attrs=["bold"]))
print(colored("Ошибка!", color="red", attrs=["reverse", "blink"]))


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

pip install termcolor


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👏4👍3🤔21
👩‍💻 PyCharm. Настройка и взаимодействие

Автор делится настройками, плагинами и горячими клавишами в PyCharm, которые разработчики почему-то игнорируют. Немного магии — и IDE начинает работать на тебя.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍1🏆1
➡️ Full Stack Pythonподробный путеводитель по экосистеме Python-разработки

Full Stack Python — это структурированный ресурс, объясняющий, как применять Python во всём технологическом стеке: от веб-разработки и работы с базами данных до деплоя и DevOps.

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

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

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
😇4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
19🤣15👍1😭1
📱 Фишка: operator.itemgetter — извлечение полей из объектов и коллекций

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

from operator import itemgetter  

data = [("Алиса", 25), ("Боб", 30), ("Чарли", 20)]

# Сортируем по возрасту (второй элемент кортежа)
sorted_data = sorted(data, key=itemgetter(1))
print(sorted_data) # [('Чарли', 20), ('Алиса', 25), ('Боб', 30)]


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

🟢 itemgetter(n) возвращает функцию, извлекающую n-й элемент.
🟢 Удобно использовать с sorted(), map(), groupby() и др.
🟢 Работает с кортежами, списками, словарями и объектами

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆8👍5
👩‍💻 Как рефреймить ошибки в программировании: метод «Пяти почему» для детей и взрослых

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

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

🐍 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