Сообщество - Программирование на python

Программирование на python

929 постов 11 940 подписчиков

Популярные теги в сообществе:

6

Как удалить пустые строки и столбцы в Excel с помощью Python

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

Установка необходимой библиотеки

Мы используем Free Spire.XLS для Python для работы с файлами Excel (XLS, XLSX, XLSB и т. д.) без необходимости в Microsoft Excel. Эта библиотека предоставляет широкий спектр возможностей, включая:

  • Создание, чтение и редактирование файлов Excel

  • Форматирование ячеек, строк и столбцов

  • Извлечение данных из таблиц

  • Конвертация файлов Excel в другие форматы

Чтобы начать, вы можете установить библиотеку из PyPI с помощью следующей команды pip:

pip install spire.xls.free

Удаление пустых строк и столбцов в Python

Следующий скрипт на Python демонстрирует, как эффективно удалить пустые строки и столбцы из файла Excel.

Пошаговое объяснение:

  1. Загрузите файл Excel: Скрипт начинается с загрузки входного файла Excel с помощью Workbook.LoadFromFile().

  2. Получите таблицу: Первая таблица извлекается для обработки.

  3. Удалите пустые строки: Код проходит по строкам в обратном порядке (чтобы избежать проблем с сдвигом индексов) и удаляет любые пустые строки с помощью IsBlank.

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

  5. Сохраните измененный файл: Очищенный файл сохраняется в указанном выходном каталоге.

Вот полный код:

from spire.xls import *

from spire.xls.common import *


# Загрузить файл Excel

workbook = Workbook()

workbook.LoadFromFile("Input.xlsx")


# Получить первую таблицу

sheet = workbook.Worksheets.get_Item(0)


# Проход по строкам, начиная с последней к первой

for i in range(sheet.Rows.Length - 1, -1, -1):


# Проверка, является ли строка пустой

if sheet.Rows.get_Item(i).IsBlank:


# Удалить пустые строки

sheet.DeleteRow(i + 1)


# Проход по столбцам, начиная с последнего к первому

for j in range(sheet.Columns.Length - 1, -1, -1):


# Проверка, является ли столбец пустым

if sheet.Columns.get_Item(j).IsBlank:


# Удалить пустые столбцы

sheet.DeleteColumn(j + 1)


# Сохранить измененный файл

workbook.SaveToFile("output/DeleteBlankRowsAndColumns.xlsx", FileFormat.Version2016)


# Освободить ресурсы

workbook.Dispose()

Как удалить пустые строки и столбцы в Excel с помощью Python

Примечания:

  • Цикл выполняется в обратном порядке (range(…, -1, -1)), чтобы предотвратить несоответствие после удаления.

  • IsBlank проверяет, является ли вся строка или столбец пустым.

  • Выход сохраняется в формате Excel 2016, но поддерживаются и другие форматы (например, XLS, CSV).

Заключение

В этой статье мы рассмотрели, как определить и удалить пустые строки и столбцы в таблице с помощью Free Spire.XLS для Python. Надеюсь, это будет полезно!

Показать полностью 1

Игра "Бой" на Python

Пример вида главной игры с консоли.

Пример вида главной игры с консоли.

Исходный код этой игры: https://gist.github.com/Omaroviz/bc66bc1e6d1c351dbe521bcef68...

Главные переменные параметров Игрока и бота: hp, hp_evil. По умолчанию оба поставлены на 100

Краткое руководство:

Навигация по главной странице:
1. Начать. - Начать игру
2. Настройки. - Переход в настройки. Можно изменить параметры игрока и бота.
3.Выход. - Выход

Навигация по меню главной игры:
1. Атака (5–20 урона) - Атаковать врага. Сила удара может быть в радиусе 5 - 20 hp. Чем больше удар, тем меньше вероятность.
2. Здоровье (+5 – +20 HP) - Выздороветь в радиусе 5 - 20 hp. Чем больше выздоровление, тем меньше вероятность.
3. Бегство (0–10 потерь) - Избежать удара. Вероятность больше избежать удар, чем получить

После каждого хода Игрока ход передается Боту.

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

Для изменения цвета шрифта библиотеки не требуются!

Показать полностью

FinLabPy: когда брокеры отказались создавать стандарт — его создал один человек

В последнее время я активно занимаюсь автоматизацией торговли и знакомлюсь с разными решениями, два раза летал на конференции, познакомился с интересными людьми. На этом фоне я наткнулся на open-source проект cia76/FinLabPy, о котором уже давно слышал, но никогда не разбирался подробно.

Российская алготорговля переживает странный период: возможности растут, но стандартизации как будто не существует. Брокеры выпускают свои API, но каждый из них живёт в отдельной вселенной — со своим обозначением тикеров, задержками и внезапными отключениями.

Про проблемы алготорговли на Московской бирже почти не пишут, хотя есть мнение что 60% оборота биржи создаётся роботами. А вот автор этого проекта Игорь Чечет на своём вебинаре рассказывает о том с какими проблемами может столкнуться частный инвестор, когда приходит в алгоритмическую среду.

Начну с главного - какую вообще проблему решает FinLabPy?

Что такое FinLabPy и какую проблему он решает

cia76/FinLabPy — это унифицированная платформа для анализа рынков, прототипирования торговых идей, тестирования стратегий и запуска автоторговли через нескольких российских брокеров.

Необходимость создания такой библиотеки возникла потому что российские брокеры реализовали API «каждый в меру своих возможностей». Несколько примеров:

  • Финам: может самостоятельно отваливать подписки.

  • Т-Инвест: присылает сделки пачками и с задержкой; бары иногда запаздывают на 2–3 минуты.

  • Алор: любит перезагружать сервер прямо во время торгов.

  • QUIK: использует свою экзотическую систему тикеров вида TQBR.SBER.

У каждого своя спецификация данных, свои ограничения и свои «фичи», которые на деле превращаются в головную боль.

FinLabPy по словам его создателя забирает всю эту боль себе: переподключения, нормализация данных, логирование, кэширование, обработка ошибок, единые тикеры — всё это зашито в open‑source библиотеке.

Архитектура: три уровня, которые упрощают жизнь разработчику

FinLabPy устроена на трёх уровнях что меня удивило:

  1. Нижний слой: нативные API брокеров.
    REST, WebSocket, GRPC — всё, что брокер даёт.

  2. Средний слой: Python‑обёртки.
    Отдельные проекты под каждого брокера:

    • AlorPy

    • FinamPy

    • QuikPy

    • TinvestPy (Т‑Инвест)

    • (в работе) обёртка для БКС

  3. Верхний слой: FinLabPy
    Единый интерфейс, единая модель данных, единая логика. При этом доступ к «уникальным» функциям конкретного брокера сохраняется:
    FinLabPy → provider.provider → уникальные методы обёртки.

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

Технологический стек FinLabPy

Автор сознательно взял лучшие решения рынка и встроил их в экосистему. Никакого изобретения велосипеда.

Основные элементы:

  • Python

  • Backtrader — тестирование и автоторговля

  • TA‑Lib — более 200 индикаторов

  • Pandas и NumPy

  • TradingView Lightweight Charts — графики

  • aiogram — Telegram‑боты

  • Jupyter Notebook — исследования

На своём стриме автор поднимает и другие вопросы, например где запускать торговых роботов?

Только на VPS под Linux (Debian/Ubuntu). Причины:

  • стабильный интернет,

  • нет NAT, DHCP и прочих «домашних» сюрпризов,

  • нет DPI и странных блокировок провайдеров,

  • скорость соединения «сервер → брокер» всегда выше.

Стоимость VPS: 150–400 рублей в месяц.

Кэширование, спецификации тикеров и работа с расписаниями

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

Кэширование данных. Чтобы:

  • уменьшить количество запросов к API брокера;

  • ускорить прогон стратегий;

  • обходить лимиты (100 запросов в минуту, данные по 1 дню и т. д.).

Кэш хранится в локальных файлах и пополняется пошагово (инкрементально).

Спецификации инструментов. Отдельно кэшируются:

  • шаг цены,

  • минимальный лот,

  • доступная история свечей (у разных брокеров — разная),

  • прочие параметры.

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

Telegram-интеграции и мультиброкерская работа

Меня, работающего с несколькими брокерам и, особенно это зацепило. У автора всё это сведено в слой — «мультиброкерский пакет», где есть готовые Telegram‑боты:

  • сводка по всем счетам,

  • баланс,

  • открытые позиции,

  • уведомления.

Используется aiogram, поддерживается и Discord.

Зачем мультиброкерность?

  • запуск одной стратегии на нескольких брокерах;

  • диверсификация инфраструктурных рисков;

  • удобство тестирования;

  • возможность легко «мигрировать» между брокерами.

Переключение брокера = изменение параметра в конфиге.

Backtrader: стандарт де-факто, но с оговорками

Автор прямо говорит, что Backtrader — мощный инструмент, но он заброшен. В планах:

  • либо создать собственный форк и привести архитектуру в порядок,

  • либо полностью переписать движок,

  • но сохранить совместимость со всеми существующими стратегиями.

До создания шаблона я тоже пытался разработать собственный GUI для Backtrader — простой интерфейс. Но проект особо не взлетел, хотя это и была попытка создать удобный шаблон, который каждый сможет расширять под себя.

Веб-интерфейс, gRPC и клиент-серверная архитектура

Логическим продолжением разговора стала архитектура будущей версии. Автор явно движется к полноценной платформе. Планы развития со слов Игоря выглядят так:

Веб‑интерфейс. Для визуализации, анализа и, возможно, полноценной работы с роботами. Примерно как «домашний терминал».

gRPC. FinLabPy + роботы работают на VPS (сервер), а аналитика и управление — с локального ПК через gRPC‑клиент. Это даст:

  • безопасность,

  • скорость,

  • возможность разнести вычисления и интерфейс.

Из трёх часов стрима я отметил для себя несколько рекомендаций.

Практические советы разработчикам

Игорь на стриме регулярно подчёркивает несколько вещей:

  1. Не изобретайте велосипеды.
    TradingView для графиков, TA‑Lib для индикаторов, Backtrader для торговли — всё уже существует.

  2. Запускайте роботов только на VPS под Linux.

  3. Используйте подробное логирование (DEBUG). Особенно в период отладки подписок и торговых операций.

  4. Помните: унификация ограничена возможностями «самого слабого» брокера.
    Если нужны уникальные функции — используйте методы конкретной обёртки напрямую.

Немного юридических моментов

Не обошлось и без юридических деталей — неожиданный, но важный момент, который автор пояснил. Автор планирует сертифицировать FinLabPy в реестре российского ПО Минцифры.
Это нужно:

  1. для защиты авторских прав;

  2. для потенциальной интеграции библиотеки брокерами или биржей.

Но для обычных трейдеров это вроде как никак не меняет ситуацию: проект планируется open-source.

Что пока остаётся «за кадром»

Как человек, который интересуется не только инфраструктурой, но и моделями, я отметил список тем, которые автор пока не стал раскрывать:

  • продвинутые методы бэктестинга (walk-forward, Монте-Карло),

  • управление рисками и портфельные модели,

  • оптимизацию производительности,

  • структуру конфигов,

  • интеграцию LLM / AI в торговые системы.

Фокус шёл именно на инфраструктуру и унификацию.

Итог

Лично я воспринимаю cia76/FinLabPy как один из самых многообещающих open‑source проектов под российскую алготорговлю. Это попытка создать единый стандарт, которого брокеры не смогли (или не захотели) создать сами.

Если вы пишете торговых роботов под российских брокеров — присмотреться к FinLabPy определённо стоит.

Автор: Михаил Шардин
🔗 Моя онлайн‑визитка
📢 Telegram «Умный Дом Инвестора»

18 ноября 2025

Показать полностью 2

ИИ Змейка

Всем привет пикабушники! Хочу рассказать про программу созданную ИИ Gemini!

Программа полностью написана нейросетью от Google, можно сыиграть в 3 змейки: Tkinter, Pygame 2d, Pygame 2d Modern.

Учтите: Скачивайте Python 3.12.5

Скачайте библиотеки ursina и pygame (через py (или python) -m pip install ~~~ (название библиотеки), также можно без py my если PATH нормальный,

Не открывайте exe файл - откройте ярлык

Доступно только на ПК с Windows

Размер ZIP: 32,5 МБ

ГДЕ СКАЧАТЬ?

Ссылка на скачивание в Яндекс Диск: disk.yandex.ru/d/BnG8cVknhsZiag

Кто хочет скачивайте, кто не хочет не скачивайте, ваш выбор!

Мне нужно ваше мнение, стоит ли пользоваться Gemini когда скачаете?

Ну а так всем пока, пикабушники!

Показать полностью
4

Игра "Коровки и Курочки" на Python

Для запуска игры вам понадобится:

  1. Компьютер.

  2. Visual Studio Code или PyCharm.

  3. Код.

Откройте ссылку на github:
https://gist.github.com/Omaroviz/c3f85fe2c9802d50863af576856...
(Это НЕ установочный файл!!! Это ссылка на гитхаб, так как на пикабу нельзя вставлять код!)

Скопируйте ее в VS Code.

Все

4

Создаем виджеты для BUSY Bar без кодинга

BUSY Bar — это продвинутый фокус-таймер с функцией блокировки отвлекающих приложений и интеграцией в умный дом. В этом посте мы покажем как, используя HTTP API, можно создавать виджеты для BUSY Bar. Это смогут сделать не только разработчики, но и обычные пользователи.

Далее вы узнаете как:

  • Вывести изображения и текст на экран BUSY Bar.

  • Взаимодействовать с устройством прямо из браузера.

  • Создать виджеты без программирования.

Виджеты, которые мы сделаем в этой статье

Виджеты, которые мы сделаем в этой статье

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

Один API для всех типов подключения

HTTP API — это протокол для взаимодействия с BUSY Bar, доступный через все 3 поддерживаемые типа подключения:

  • USB Ethernet — при подключении BUSY Bar к ПК, он определяется как сетевой адаптер с виртуальной сетью.

  • Wi-Fi сеть быстрое, беспроводное подключение. BUSY Bar можно разместить где угодно в зоне действия Wi-Fi.

  • Cloud-сервер удаленное управление через интернет с шифрованием и авторизацией по ключу, используя API-токен, выпускаемый в личном кабинете BUSY.

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

Как работает HTTP API в BUSY Bar

Как следует из названия, HTTP API основан на протоколе HTTP, который используется для передачи данных в интернете, между браузером и web-сервером. Когда вы вводите URL сайта, ваш браузер отправляет HTTP запрос и сервер возвращает web-страницу в ответе.

Взаимодействие web-браузера и web-сервера по протоколу HTTP

Взаимодействие web-браузера и web-сервера по протоколу HTTP

Взаимодействие с BUSY Bar устроено похожим образом. BUSY Bar выполняет роль HTTP сервера и ожидает запросы, а ПО на ПК выполняет роль HTTP клиента. Этим ПО может быть любая программа, поддерживающая отправку HTTP-запросов, например, система умного дома, приложение или скрипт.

Скрипт или приложение отправляет запрос и BUSY Bar возвращает данные в формате JSON

Скрипт или приложение отправляет запрос и BUSY Bar возвращает данные в формате JSON

Благодаря широкой поддержке HTTP в языках программирования, обращаться к BUSY Bar можно с помощью всего нескольких строк кода. А некоторые простые запросы, такие как запрос общей информации о BUSY Bar, могут быть отправлены прямо из браузера - просто открытием http://10.0.4.20/api/status/system.

Запрос /api/status/system возвращает общую информацию о BUSY Bar

Запрос /api/status/system возвращает общую информацию о BUSY Bar

ℹ️ В случае использования USB-подключения IP-адрес BUSY Bar'а всегда будет 10.0.4.20 — он даже указан на задней крышке устройства. При подключении через Wi‑Fi IP-адрес назначается роутером. В следующих примерах мы будем использовать USB-подключение.

IP-адрес BUSY Bar’а указан на задней крышке устройства

IP-адрес BUSY Bar’а указан на задней крышке устройства

Документация HTTP API прямо на устройстве

Все поддерживаемые HTTP-запросы, их параметры и форматы ответов описаны в документации HTTP API, которая хостится прямо на устройстве. При подключении по USB она доступна по адресу: http://10.0.4.20/docs.

Документация HTTP API, открытая с устройства

Документация HTTP API, открытая с устройства

Открыть документацию HTTP API также можно с главной страницы web-интерфейса BUSY Bar, который доступен по адресу http://10.0.4.20.

Главная страница web-интерфейса BUSY Bar и ссылка на документацию HTTP API на ней

Главная страница web-интерфейса BUSY Bar и ссылка на документацию HTTP API на ней

HTTP-запросы можно тестировать прямо на странице с документацией, выполнив следующее:

  1. Выберите запрос, например: /api/display/draw (вывод текста и картинок на экран).

  2. Нажмите Try it out.

  3. Скорректируйте параметры запроса.

  4. Нажмите кнопку Execute, чтобы отправить запрос на BUSY Bar.

После нажатия Execute браузер отправляет HTTP API-запрос в BUSY Bar, который возвращает ответ, указывающий либо на успешное выполнение (OK), либо на ошибку (Bad Request), если с запросом что-то не так. В случае успеха BUSY Bar выводит на экран «HELLO, WORLD!».

[Видео] При успешном выполнении запроса BUSY Bar выводит на экран строку "HELLO, WORLD!"

Как AI может помочь использовать HTTP API

В сети есть тонны гайдов, обсуждений и примеров кода для работы с HTTP. А еще со всеми этими знаниями умеют работать AI-ассистенты. Поэтому даже без навыков программирования вы можете создавать виджеты для BUSY Bar.

ℹ️ Для продвинутых пользователей мы также предлагаем готовые библиотеки для Python и JavaScript, реализующие наш HTTP API.

Для создания виджета с помощью AI-ассистента (ChatGPT, Gemini, Claude и других) нужно:

  • Объяснить ему, как выводить картинки и текст на экран (1 промпт).

  • Объяснить, что должен делать виджет (1-2 промпта).

  • Попросить устранить недостатки (0-10 промптов).

В результате вы получите скрипт, который запускается на ПК и по HTTP API отправляет UI виджета на подключенный по USB девайс.

Скрипт работает на ПК и отрисовывает виджет на экране BUSY Bar через HTTP API

Скрипт работает на ПК и отрисовывает виджет на экране BUSY Bar через HTTP API

Дальше мы покажем на реальных практических примерах, как можно сделать виджет, не прибегая к программированию. Мы будем использовать ChatGPT. Все сгенерированные AI-скрипты доступны по ссылкам на каждом шаге.

Шаг 0: Учим AI использовать экран BUSY Bar

При создании каждого виджета сначала нужно объяснить AI, как использовать HTTP API, а именно два запроса:

  • /api/assets/upload — для загрузки картинок в память BUSY Bar.

  • /api/display/draw — для вывода текста и ранее загруженных картинок.

Промпт к AI (сделан на основе документации HTTP API):

Тот же самый текст промпта на GitHub

Результат: AI теперь умеет через USB выводить на экран изображения и тексты, а также использовать разные шрифты и цвета текста.

Делаем виджет часов

Для начала, просто для тренировки, сделаем очень простой виджет — часы с датой. Время и дата будут браться с ПК и обновляться на экране BUSY Bar раз в секунду. Время выведем крупным шрифтом — чаще всего увидеть его важнее, чем дату.

Шаг 1: Вывод времени и даты

🤖 Промпт к AI: Выведи на экран текущую дату (мелко) и время (крупно) по центру экрана. Формат даты — день.месяц.год. Время выведи с секундами.

Результат: AI написал скрипт на языке Python. Его нужно сохранить в файл с расширением .py и запустить командой python file.ру (Windows) или python3 file.ру (Linux/macOS).

Скрипт от AI: clock-1.py

Виджет часов. Шаг 1: На экран выведены дата и время (часы не идут)

Виджет часов. Шаг 1: На экран выведены дата и время (часы не идут)

Неплохо, но это статическая картинка. Давайте попросим AI заставить часы идти, а заодно исправим выравнивание по горизонтали и добавим цвета.

Шаг 2: Ход часов, цвета и выравнивание

🤖 Промпт к AI: Сделай, чтобы часы шли и не выключались. Текст сейчас не по центру, сдвинь его вправо на 3 пикселя. Выведи время светло-зеленым.

Скрипт от AI: clock-2.py

Результат:

[Видео] Виджет часов. Шаг 2: Готовый виджет

Мы получили готовый виджет всего за 3 промпта. Единственное замечание — AI выравнивает текст по центру с погрешностью, т.к. символы имеют разную ширину (например, цифр 1 и 5). В следующей версии HTTP API мы добавим выравнивание текста по горизонтали и вертикали, что полностью решит эту проблему.

Делаем погодный виджет

Скрипт, запущенный на ПК, будет получать погоду из открытых источников в интернете и выводить ее на экран BUSY Bar для нескольких городов. Для каждого города скрипт выведет иконку погоды, город и температуру.

Шаг 1: Вывод погоды

🤖 Промпт к AI: Сделай скрипт, выводящий поочередно погоду в 3 городах: Dubai, London, New York с паузой 3 секунды. Погоду бери из открытых источников без необходимости регистрации.

Скрипт от AI: weather-1.py

Результат:

[Видео] Погодный виджет. Шаг 1: Вывод погоды в 3 городах

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

Шаг 2: Улучшение интерфейса

🤖 Промпт к AI: Слева на экран выведи иконку погоды (16×16), пусть скрипт сам их нарисует. Справа выведи: город (мелко) и температуру (крупно).

Скрипт от AI: weather-2.py

Результат:

[Видео] Погодный виджет. Шаг 2: Новое расположение элементов на экране

Уже лучше, но есть еще пара недочетов, которые мы устраним следующими запросами к AI.

Шаг 3: Разбираемся со знаком градуса

🤖 Промпт к AI: Символ градуса не отображается. Девайс точно умеет выводить этот символ шрифтом big.

Скрипт от AI: weather-3.py

Результат:

[Видео] Погодный виджет. Шаг 3: Теперь символ градуса отображается корректно

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

Шаг 4: Делаем красивые иконки

Нужно подготовить иконки для основных погодных явлений (солнечно, облачно, дождь и т.д.). Сами иконки можно взять в открытых источниках — например, существует отличный шрифт Noto Color Emoji 16.0 от компании Google. Изображения всех символов доступны в репозитории на GitHub.

Нам понадобятся картинки:

  • ☀️ sun.png (солнечно) — символ u2600

  • ☁️ cloud.png (облачно) — символ u2601

  • 🌫️ fog.png (туман) — символ u1f32b

  • partly.png (переменная облачность) — символ u1324

  • 🌧️ rain.png (дождь) — символ u1327

  • 🌨️ snow.png (снег) — символ u1328

Эти картинки нужно смасштабировать до 16×16 и сохранить в папке icons, которая должна быть расположена в папке со скриптом. После этого нужно попросить AI доработать скрипт.

🤖 Промпт к AI: Сделай вывод иконок из готовых файлов, которые я положил в папку icons: cloud.png, fog.png, partly.png, rain.png, snow.png, sun.png.

Скрипт от AI: weather-4.py

Результат:

[Видео] Погодный виджет. Шаг 4: Готовый виджет

🚀 Готово! В скрипте можно изменять список городов. Можно оставить только один город и тогда будет отображаться только его погода, обновляясь каждые 3 секунды.

Делаем пинг-монитор

Ping — это способ проверки доступности устройств в сети. Смысл в отправке специального запроса на IP-адрес проверяемого узла и измерении времени от отправки запроса до получения ответа.

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

Индикатор пинга в игре Pokémon UNITE

Индикатор пинга в игре Pokémon UNITE

Шаг 1: Вывод графика пинг

🤖 Промпт к AI: Сделай скрипт, который выводит график пинга игрового сервера по IP. Обновление графика раз в секунду. В верхнем левом углу выведи пинг маленьким шрифтом.

Скрипт от AI: ping-monitor-1.py

AI сгенерировал скрипт, который принимает IP-адрес сервера в качестве параметра. Поэтому адрес нужно указать при запуске скрипта. Например, если адрес сервера — 8.8.8.8, то для мониторинга его доступности команда будет выглядеть так:

python3 ping-monitor-1.ру --server 8.8.8.8.

Результат:

[Видео] Пинг-монитор. Шаг 1: На экран выведен график и текущее значение пинга

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

Шаг 2: Разукрашиваем график

🤖 Промпт к AI: Пусть на графике столбцы, соответствующие 0-20 мс, будут зелеными, 21-50 — желтыми, а больше 50 — красными. Высота шкалы — 100 мс.

Скрипт от AI: ping-monitor-2.py

Результат:

[Видео] Пинг-монитор. Шаг 2: График разукрашивается в соответствии со значением пинга

Супер! Осталась одна маленькая, косметическая, деталь — вывод логотипа игры в левой части экрана.

Шаг 3: Добавляем логотип игры

🤖 Промпт к AI: Давай еще слева от графика выведем логотип игры CS:GO.

AI просит, чтобы файл с логотипом игры назывался csgo.png и лежал в папке со скриптом. Нагуглим подходящую картинку, смасштабируем до 16×16 и сохраним.

Скрипт от AI: ping-monitor-3.py

Результат:

[Видео] Пинг-монитор. Шаг 3: Готовый виджет

🚀 Готово! Всего за несколько шагов, не прибегая к программированию, мы смогли создать наглядный виджет. Его можно использовать не только для мониторинга доступности игрового сервера, но и в целом для мониторинга доступности любых других серверов в LAN или интернете.

Скоро Kickstarter

В начале 2026 года мы запустим нашу Kickstarter-кампанию. Оформите предзаказ в нашем магазине чтобы получить доступ к специальной цене для первых заказов когда кампания начнется: https://busy.bar/shop

Подпишитесь на наши X, Instagram и Reddit, чтобы следить за обновлениями BUSY Bar.

Instagram — продукт компании Meta Platforms Inc., признанной экстремистской организацией, деятельность которой запрещена на территории Российской Федерации.

Показать полностью 13 9

Год вайбкодинга

Сколько вы сделали за год? (Наверное, уже многие отметили такую дату).
Сколько работающих проектов, прототипов, скриптов, а может опробованных других языков программирования.
Может уже замом замов в ВК/Яше-Финтехе стали?

Делитесь)

Год вайбкодинга
Показать полностью 1
Отличная работа, все прочитано!