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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
Media is too big
VIEW IN TELEGRAM
📱 Реальное ЛАЙВКОДИНГ собеседование JUNIOR Python разработчик

В данном видео автор на практике покажет решение трех задач с собеседования на позицию Junior Python. А также расскажет, что нужно говорить во время собеса и что пригодится кроме умения решать задачи.

0:00 - Что вас ждет
0:45 - 1 задача (легкая)
6:43 - Определяем алгоритмическую сложность
8:58 - 2 задача (средняя)
12:44 - Момент ступора...
16:06 - 3 задача (самая сложная)
24:23 - Что нужно говорить вслух
31:48 - Что важно уметь кроме решения задач

📱 Ссылка на первоисточник

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
👩‍💻 Python Projects — отличный ресурс с более чем 70 проектами на Python для начинающих.

Там вы найдете множество идей для простых и увлекательных проектов: игры, генераторы паролей, таймеры и многое другое.

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

В общем, кому нужно больше практики — сохраняйте 👍


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

🐍 Ghostly Python | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6
⚙️ Библиотека: Cerberus

Cerberus — это легковесная библиотека для валидации данных. Она позволяет проверять соответствие данных указанным схемам и поддерживает простую и гибкую настройку правил валидации.

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

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

from cerberus import Validator

# Определение схемы валидации
schema = {
'name': {'type': 'string', 'maxlength': 10},
'age': {'type': 'integer', 'min': 18},
'email': {'type': 'string', 'regex': '^[\w\.-]+@[\w\.-]+$'}
}

# Создание валидатора
v = Validator(schema)

# Данные для проверки
user_data = {'name': 'Alice', 'age': 24, 'email': 'alice@example.com'}

# Валидация данных
if v.validate(user_data):
print("Данные корректны")
else:
print("Ошибки в данных:", v.errors)


✔️ Установка

pip install cerberus


🐱 Ссылка на GitHub

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍135
Всё, что нужно знать о конструкторах в Python

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

В этой статье, вы узнаете об этом подробнее.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
9
📱 Фишка: Переопределение операторов для кастомных объектов

Если вы создаете свои классы, вы можете сделать их интуитивно понятными, переопределяя стандартные операторы. Это позволяет работать с вашими объектами, как с базовыми типами, улучшая читаемость и удобство использования кода.

⚙️ Пример

Создание вектора с поддержкой арифметических операций:

class Vector:
def __init__(self, x, y):
self.x = x
self.y = y

def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)

def __sub__(self, other):
return Vector(self.x - other.x, self.y - other.y)

def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar)

def __repr__(self):
return f"Vector({self.x}, {self.y})"

# Пример использования
v1 = Vector(2, 3)
v2 = Vector(1, 4)

print(v1 + v2) # Vector(3, 7)
print(v1 - v2) # Vector(1, -1)
print(v1 * 3) # Vector(6, 9)


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

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍4
👩‍💻 Шпаргалка по Python для каждого разработчика

Если вы хотите быстро освежить свои знания Python или только начинаете знакомиться с этим языком, то обязательно обратите внимание на эту шпаргалку.

Автор включил синтаксис для каждой концепции Python от начального до продвинутого уровня.

📌 Что вас ждет:

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

📱 Ссылка на репозиторий

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1
Media is too big
VIEW IN TELEGRAM
👩‍💻 Пет-проект на Python за 50 минут. Курс по FastAPI для начинающих [2024]

Этот урок посвящен созданию и развертыванию приложений на FastAPI. Он охватывает основные аспекты, начиная с использования FastAPI для разработки веб-приложений и API, и заканчивая интеграцией с базами данных.

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

Урок предоставляет всесторонний подход к созданию производительных и современных веб-приложений.

📱 Ссылка на первоисточник

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105🔥4
⚙️ Библиотека: Dateparser

Данная библиотека позволяет легко находить и определять даты в массиве данных. Работает с разными форматами записи: и строгими, и «человекопонятными».

Dateparser сможет найти дату и формата «25.06.1999», и формата «вчера» или «месяц назад». В основном библиотека используется при парсинге данных.

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

>>> import dateparser

>>> dateparser.parse('Fri, 12 Dec 2014 10:55:50')
datetime.datetime(2014, 12, 12, 10, 55, 50)

>>> dateparser.parse('1991-05-17')
datetime.datetime(1991, 5, 17, 0, 0)

>>> dateparser.parse('In two months') # today is 1st Aug 2020
datetime.datetime(2020, 10, 1, 11, 12, 27, 764201)

>>> dateparser.parse('1484823450') # timestamp
datetime.datetime(2017, 1, 19, 10, 57, 30)

>>> dateparser.parse('January 12, 2012 10:00 PM EST')
datetime.datetime(2012, 1, 12, 22, 0, tzinfo=<StaticTzInfo 'EST'>)


✔️ Установка

pip install dateparser


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
👩‍💻 Фишка: Использование namedtuple для удобных и читаемых кортежей

namedtuple — это класс, который позволяет создавать кортежи с именованными полями. Он является частью модуля collections и позволяет обращаться к элементам кортежа по имени, а не по индексу.

⚙️ Как работает namedtuple?

Вот небольшой пример:

from collections import namedtuple

# Создание типа данных Person
Person = namedtuple('Person', ['name', 'age'])

# Создание экземпляра
person1 = Person(name="Alice", age=30)

# Доступ к полям через имя
print(person1.name) # Output: Alice
print(person1.age) # Output: 30


Как и обычные кортежи, namedtuple является неизменяемым (immutable). Это значит, что после создания объекта его поля нельзя будет изменить.

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

📌 Когда использовать?

🟢 Для структурированных данных: Если вам нужно хранить данные, которые часто встречаются в виде нескольких полей (например, имя, возраст, координаты), namedtuple позволит улучшить читаемость.

🟢 Для экономии памяти: Когда нужно создать легковесные объекты, но с возможностью быстрого доступа к полям по именам.

🟢 Когда нужно заменить кортежи: Если вы хотите использовать кортежи, но с добавлением именованных полей, чтобы избежать путаницы с индексами.

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥2💘1
📱 Полезная шпаргалка с задачами и примерами решений на Python для подготовки к собеседованию

В этой подборке вы найдете готовые задачи и их решения, которые помогут вам освежить знания перед важной встречей с работодателем:

📌 Что внутри:

🟢 Поиск минимальных, максимальных и средних значений в коллекциях;
🟢 Подсчет вхождений определенных символов или строк;
🟢 Слияние нескольких списков в единый;
🟢 Чтение и запись данных в файлы;
🟢 Работа с регулярными выражениями для поиска и обработки данных;
🟢 Использование лямбда-функций для лаконичного кода;
🟢 Создание и применение декораторов для оптимизации функций;
🟢 Генераторы списков и другие удобные инструменты Python.

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

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
👩‍💻 Python ООП: КОМПОЗИЦИЯ простыми словами.

В этом видео мы познакомимся с концепцией в ООП языка Python известной как композиция.

Автор на практических примерах покажет и расскажет, как ее использовать, где и в каких случаях.

📱 Ссылка на урок

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
📱 Огромная библиотека гайдов по Python

В данном репозитории собрано множество гайдов с готовым кодом по разным направлениям разработки. Отличный вариант найти что-то интересное для себя и попрактиковаться в разработке.

📌 Содержит гайды по таким темам, как:

Этичный хакинг: разработка WiFi сканера, написание кейлоггера, взлом запароленных Zip-архивов и еще много всего интересного

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

— Веб-парсинг
— Использование стандартных библиотек
— Использование API
— Базы данных
— Работа с мультимедиа
— Веб разработка
— Разработка приложений с GUI
— Разработка игр

В общем, однозначно стоит заглянуть и попробовать что-то реализовать.


📱 Ссылка на репозиторий

🐍 Ghostly Python | #resources
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
⚙️ Библиотека Python: httpx

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

✔️ Основные особенности

🗣 Поддержка различных протоколов: httpx поддерживает HTTP/1.1, HTTP/2 и WebSocket, что позволяет вам взаимодействовать с различными серверами и сервисами.

🗣 Поддержка HTTPS: библиотека обеспечивает безопасное соединение с сервером по HTTPS протоколу с использованием SSL и TLS.

🗣 Асинхронные запросы: httpx предоставляет возможность осуществлять асинхронные запросы, что позволяет улучшить производительность в асинхронных приложениях.

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

import httpx

async def main():
async with httpx.AsyncClient() as client:
response = await client.get('https://api.github.com/repos/encode/httpx')
print('Response:', response.status_code)
print('Content:', response.text)

# Запуск асинхронной функции
httpx.run(main())


Установка

pip install httpx


Также, httpx можно использовать прямо в терминале как CLI-утилиту. Для этого необходимо выполнить установку следующим образом:

pip install 'httpx[cli]'

Чтобы узнать все доступные опции, выполните команду: httpx help

Ну и если было полезно, ставь 🔥


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🗣 Text to Speech на Python: как преобразовать текст в речь с помощью gTTS

Все очень просто, если использовать библиотеку gTTS (Google Text-to-Speech). Это один из самых легких способов преобразовать текст в речь.

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

pip install gTTS


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

from gtts import gTTS
import os

# Текст для преобразования
text = "Привет, это текст, который я превращу в речь."

# Создаем объект TTS
tts = gTTS(text=text, lang='ru')

# Сохраняем файл с речью
tts.save("output.mp3")

# Воспроизводим файл
os.system("start output.mp3") # Для Windows


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

1. gTTS принимает текст и язык (в данном примере — русский), и преобразует его в аудио.
2. С помощью метода save() можно сохранить аудиофайл, а os.system() — воспроизвести его.

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
📱 Создаем своё приложение на Python (Tkinter)

В современном мире программирования создание графических приложений стало доступным даже для начинающих разработчиков. Одним из самых популярных инструментов для создания GUI-приложений на языке Python является библиотека Tkinter.

В этой статье мы рассмотрим основы работы с Tkinter и создадим простое приложение шаг за шагом.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83❤‍🔥1
🧪 Почему важно писать тесты для Python-кода и как начать

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

💬 Зачем нужны тесты?

— Легче находить баги.
— Спокойнее рефакторить код.
— Если тесты написаны хорошо, они документируют поведение программы.

⚙️ Простой пример

1. Для начала установим библиотеку pytest:

pip install pytest


2. Допустим, у нас есть такой простой код:

# calculator.py
def add(a, b):
return a + b

def subtract(a, b):
return a - b


3. Напишем тесты для него. Создадим файл test_calculator.py рядом с calculator.py:

from calculator import add, subtract

def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0

def test_subtract():
assert subtract(5, 3) == 2
assert subtract(0, 1) == -1


4. Запускаем тесты:

pytest


В результате, если все написано правильно, то мы увидим зеленые тесты

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥5🔥1
Media is too big
VIEW IN TELEGRAM
📱 Реферальная система в телеграм боте | AIOgram 3.x, SQLAlchemy

00:10 - Архитектура проекта
01:41 - Создание моделей для БД
05:51 - Файл __main__.py
08:52 - Прокидываем сессию с БД в мидлварь
11:41 - Логика для реферальной системы
21:10 - Тесты

📱 Ссылка на источник

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
⚙️ Библиотека: requests-html

Requests-HTML — это мощная библиотека для веб-скрейпинга. Она позволяет извлекать данные с веб-страниц, обрабатывать JavaScript, взаимодействовать с DOM и загружать данные асинхронно.

Удобный инструмент для парсинга динамических веб-страниц и работы с их содержимым.

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

from requests_html import HTMLSession

# Создаем сессию
session = HTMLSession()

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

# Выполняем JavaScript на странице
response.html.render()

# Извлекаем заголовки <h1>
headings = response.html.find("h1")
for heading in headings:
print(heading.text)


➡️ Чтобы сохранить HTML-страницу в файл:

with open("page.html", "w") as f:
f.write(response.html.html)


✔️ Установка

pip install requests-html


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💬 Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Практическая статья о создании мини-чата на FastApi. Вы изучите вебсокеты, узнаете, зачем они нужны и как применяются в реальных приложениях. Также автор продемонстрирует работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

А чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Уровень тревоги 💯

🐍 Ghostly Python | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣18👍31