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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
🗣 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
📱 Фишка: Сокращаем код с помощью оператора := (walrus-оператор)

Walrus-оператор (:=) появился в Python 3.8 и позволяет присваивать значения переменным прямо внутри выражений. Это делает код более компактным и читаемым.

Разберем несколько примеров его использования 🔽

1️⃣ Уменьшаем дублирование кода в циклах

Обычно приходилось вычислять значение до цикла или в теле цикла:

data = input("Введите что-нибудь: ")
while data:
print(f"Вы ввели: {data}")
data = input("Введите что-нибудь: ")


С := всё становится проще:

while (data := input("Введите что-нибудь: ")):
print(f"Вы ввели: {data}")


➡️ Теперь значение data вычисляется и проверяется в одном месте.

2️⃣ Условные фильтры в списках

С walrus-оператором можно отфильтровать данные прямо в списочном выражении:

numbers = ["10", "abc", "20", "xyz"]
valid_numbers = [int(num) for num in numbers if (number := num.strip()).isdigit()]
print(valid_numbers) # [10, 20]


➡️ num.strip() сохраняется в переменную number и тут же проверяется.

3️⃣ Ускоряем обработку больших данных

Допустим, вы работаете с текстом, который нужно обработать, но только если длина строки превышает определённое значение:

lines = ["short", "this is a long line", "another long line", "tiny"]
long_lines = [line for line in lines if (length := len(line)) > 10]
print(long_lines) # ['this is a long line', 'another long line']


➡️ Одновременно считаем длину строки и используем её в условии.

💬 Когда использовать walrus-оператор?

— Вы хотите избежать дублирования вычислений.
— Нужно улучшить читаемость циклов и условий.
— Вместо использования временных переменных.

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


🖥 Статья про этот "странный" оператор

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍173👎1
📖 Введение в машинное обучение с помощью Python

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

Без сложных математических формул, с акцентом на использование Python и библиотеки scikit-learn, книга подробно объясняет все этапы создания успешных ML-проектов. Подходит как новичкам, так и действующим специалистам, знакомым с Python, NumPy и matplotlib.

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

🐍 Ghostly Python | #книги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
📱 Разработка приложений с GUI на Python с помощью Flet

Flet — это мощный фреймворк для разработки интерактивных веб-приложений и настольных GUI, написанных полностью на Python. Он позволяет создавать приложения с современным интерфейсом без необходимости изучения HTML, CSS или JavaScript.

📌 Особенности Flet

🟢 Простой синтаксис: Всё пишется на Python, никаких сложных стэков технологий.
🟢 Кроссплатформенность: Работает в браузере, на Windows, macOS и Linux.
🟢 Мгновенная разработка: Быстрое обновление интерфейса без перезагрузки.
🟢 Основан на Flutter: Использует UI-фреймворк Flutter, что обеспечивает высокую производительность и современный внешний вид.

⚙️ Пример простого приложения на Flet

import flet as ft

def main(page: ft.Page):
page.title = "Flet App"
page.vertical_alignment = ft.MainAxisAlignment.CENTER

def button_click(e):
page.add(ft.Text(f"Привет, {name_input.value}!"))

name_input = ft.TextField(label="Введите имя", width=300)
greet_button = ft.ElevatedButton("Поздороваться", on_click=button_click)

page.add(name_input, greet_button)

ft.app(target=main)


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

✔️ Установка

pip install flet


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

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4
Media is too big
VIEW IN TELEGRAM
📱 Используем ChatGPT API бесплатно с Python

Автор показывает как абсолютно бесплатно использовать ChatGPT API, включая его самую последнюю версию - четвёртую. Мы будем работать с Python, как обычно.

Как дополнительный бонус, автор делится несколькими увлекательными идеями о том, как можно применить этот инструмент в своих собственных проектах.

📌 Таймкоды:

00:00 Вступление
00:50 Официальный API и сколько это стоит
01:57 Начало
03:11 Пример сайтов-провайдеров
05:04 Запуск
09:22 Зачем это всё нужно и где использовать? 3 идеи

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

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6
Не удержался... 😅

У вас было такое?)))


🐍 Ghostly Python | #мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🔥5👍2
➡️ Автоматизация взаимодействия с экраном в Python: быстрый гайд

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

✔️ Установка

pip install pyautogui


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

1️⃣ Управление мышью: перемещение, клик, двойной клик, прокрутка.

import pyautogui

pyautogui.moveTo(100, 200) # Переместить курсор в точку (100, 200)
pyautogui.click() # Клик левой кнопкой мыши
pyautogui.doubleClick() # Двойной клик
pyautogui.rightClick() # Правый клик


2️⃣ Работа с клавиатурой: ввод текста, нажатие клавиш, сочетания клавиш.

pyautogui.write('Hello, world!', interval=0.1)  # Ввод текста с задержкой 0.1 сек
pyautogui.press('enter') # Нажатие клавиши Enter
pyautogui.hotkey('ctrl', 's') # Сочетание клавиш Ctrl+S


3️⃣ Скриншоты и поиск элементов: захват экрана и поиск изображений на нём.

screenshot = pyautogui.screenshot('screenshot.png')  # Сохранение скриншота
location = pyautogui.locateOnScreen('button.png') # Поиск кнопки по изображению
if location:
pyautogui.click(location) # Клик по кнопке, если найдена


4️⃣ Предотвращение ошибок: защита от непредвиденных ситуаций.

pyautogui.FAILSAFE = True  # Движение мыши в угол экрана завершит программу


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

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

🐍 Ghostly Python | #гайды
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Vanna — это Python-фреймворк с открытым исходным кодом, который использует LLM для создания SQL-запросов на основе естественного языка.

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

🐱 Ссылка на GitHub

🐍 Ghostly Python | #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍126
🚀 Асинхронная работа с базами данных в Python: SQLAlchemy + Asyncio

Базы данных – ключевой элемент любого современного приложения, и их правильное использование влияет на производительность и стабильность сервиса. Но как обеспечить эффективное взаимодействие с БД в условиях высокой нагрузки?

В статье разбирается, как работать с одной из самых популярных библиотек для работы с базами данных – SQLAlchemy. А чтобы код не блокировался при выполнении запросов, мы добавим асинхронность с Asyncio.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
📱 PyChallenger: онлайн практика Python

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

📌 Вы изучите:

🟢 Python Basics — основы: переменные, операторы, строки, списки, циклы, условия и функции.
🟢 Intermediate Python — продвинутые темы: f-строки, распаковка данных, области видимости, list comprehension, лямбда-функции.
🟢 Basic Data Analysis — NumPy, Matplotlib и pandas для анализа данных.

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

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

JsonObject — удобная библиотека для быстрого преобразования json в объекты Python. Крайне удобно, когда необходимо принимать данные по API и парсить их в определенные структуры.

⚙️ Можно даже делать вложенные объекты друг в друга:

class NameUser(JsonObject):
username = StringProperty()
name = StringProperty()

class User(JsonObject):
name_info = ObjectProperty(NameUser)
active = BooleanProperty(default=False)
date_joined = DateTimeProperty()
tags = ListProperty()

user = User({
'name': 'Daniil',
'username': 'Daniil123',
'active': False,
'date_joined': '2023-03-05T02:46:58Z',
'tags': ['new', 'user', 'python']
})
print(user.name_info.name)
# -> Daniil


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

✔️ Установка

pip install jsonobject


🐱 Ссылка на GitHub

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Media is too big
VIEW IN TELEGRAM
👩‍💻 Телеграм Бот на Python с нуля!

С ростом популярности Telegram, растет и спрос на разработку ботов. И в этом видео, вы узнаете как создавать ботов на Python с использованием библиотеки aiogram.

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

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

🐍 Ghostly Python | #уроки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1341
📄 Парсинг лог-файлов на Python: Быстро и просто

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

Наш скрипт будет открывать лог-файл, искать строки, содержащие слово "ERROR", и сохранять их в отдельный файл для дальнейшего анализа.

⚙️ Исходный код

import re

# Указываем имя лог-файла и создаем регулярное выражение для поиска "ERROR"
log_file = 'server.log'
error_pattern = re.compile(r'ERROR')

# Открываем лог-файл для чтения и новый файл для записи ошибок
with open(log_file, 'r', encoding='utf-8') as infile, \
open('errors.log', 'w', encoding='utf-8') as outfile:
for line in infile:
if error_pattern.search(line):
outfile.write(line)

print("Парсинг завершен. Все ошибки сохранены в errors.log")


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

1. Импортируем модуль re для работы с регулярными выражениями.
2. Задаем имя лог-файла (server.log) и компилируем шаблон поиска ошибок.
3. Читаем лог построчно: если строка содержит "ERROR", записываем её в новый файл errors.log.
4. После выполнения скрипта все найденные ошибки окажутся в файле errors.log.

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


🐍 Ghostly Python | #скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
📱 Telegram Web App, FastAPI и вебхуки в одном приложении

Из этой статьи, вы узнаете как создать полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через WebApp и вебхуки.

В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
👩‍💻 The Ultimate Python Handbook

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

📌 Что внутри?

🟢 Основы Python: установка, переменные, типы данных, операторы.
🟢 Строки, списки, словари, множества и их возможности.
🟢 Условные выражения и циклы.
🟢 Функции и рекурсия.
🟢 Работа с файлами: чтение, запись, обработка.
🟢 Объектно-ориентированное программирование и наследование.
🟢 Продвинутые темы: виртуальные окружения, lambda-функции, обработка исключений, и многое другое.
🟢 Практические задачи и мини-проекты, включая создание чат-бота и голосового помощника.

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

🐍 Ghostly Python | #шпаргалки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72