Реальный Python
3.84K subscribers
823 photos
10 videos
7 files
872 links
Все о пайтон, новости, подборки на русском и английском. По всем вопросам @evgenycarter
Download Telegram
Шахматы, которые вас удивят: Полный гайд по созданию игры с туманом войны на Python

Всё началось с подготовки к финалу RuCode – масштабному соревнованию для всех увлечённых алгоритмическим программированием. Погружаясь в разбор заданий прошлых лет, мне кое-что совершенно случайно попало в руки, интересная задача: реализовать шахматы с "туманом войны" в консоли

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

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

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

https://habr.com/ru/articles/958560/

#python

👉 @python_real
👍4🔥1🤔1
YAML: The Missing Battery in Python

YAML (YAML Ain’t Markup Language) - это человекочитаемый формат сериализации данных, который часто используется для файлов конфигураций, обмена данными между языками и управления инфраструктурой (например, в Docker, Kubernetes и т. д.).

В Python с YAML удобно работать с помощью библиотеки PyYAML. Она позволяет:

- читать YAML-файлы и преобразовывать их в стандартные Python-объекты (dict, list, str, и т. д.);
- записывать данные обратно в YAML;
- безопасно загружать данные с помощью safe_load() (чтобы избежать выполнения произвольного кода);
- использовать настраиваемые объекты и теги для сериализации нестандартных типов.

Пример загрузки YAML-файла:


import yaml

with open("config.yaml", "r") as f:
config = yaml.safe_load(f)

print(config)


Пример записи:


import yaml

data = {"name": "Oleg", "skills": ["Python", "AI", "ML"]}

with open("output.yaml", "w") as f:
yaml.dump(data, f)


Также PyYAML поддерживает:

- настройку форматирования вывода (default_flow_style=False, indent и т. д.),
- пользовательские конструкторы и представления (add_constructor, add_representer),
- и интеграцию с другими инструментами DevOps.

https://realpython.com/python-yaml/

#python

👉 @python_real
👍2
🧼 Методы strip(), lstrip() и rstrip() в Python: удаление пробелов и символов

Работая с текстом в Python, часто нужно удалить лишние пробелы или символы с краёв строки. Именно для этого существуют методы strip(), lstrip() и rstrip().

Основы


text = " hello world "
print(text.strip()) # 'hello world'
print(text.lstrip()) # 'hello world '
print(text.rstrip()) # ' hello world'


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

Удаление определённых символов

Можно передать в метод строку с символами, которые нужно удалить:


text = ".,!?hello world!?.,"
print(text.strip(".,!?")) # 'hello world'


Важно: метод удаляет все указанные символы, а не подстроку. То есть strip("abc") удалит все a, b и c, а не строку "abc".

Применение в реальной жизни

- Очистка данных перед обработкой.
- Удаление лишних символов после парсинга.
- Нормализация пользовательского ввода.

Совет

Если нужно удалить только начало или только конец строки — используй lstrip() или rstrip() соответственно.

https://realpython.com/python-strip/

#python

👉 @python_real
👍4
Python MarkItDown: преобразование документов в Markdown для LLM

Библиотека MarkItDown позволяет быстро преобразовывать PDF, файлы Office, изображения, HTML, аудио и URL в Markdown, готовый для использования в языковых моделях (LLM). В этом руководстве вы сравните MarkItDown с Pandoc, запустите его из командной строки, используете в Python-коде и встроите конвертацию в рабочие процессы с ИИ.

По завершении урока вы поймёте следующее:

- MarkItDown можно установить через pip, используя спецификатор [all], чтобы подтянуть необязательные зависимости.
- В командной версии (CLI) результат можно сохранить в файл с помощью опции -o или --output, указав путь назначения.
- Метод .convert() читает входной документ и преобразует его в Markdown.
- Сервер MCP MarkItDown можно подключать к клиентам вроде Claude Desktop, чтобы выполнять конвертацию по запросу прямо в чате.
- MarkItDown может интегрироваться с LLM для генерации описаний изображений и извлечения текста с помощью OCR и пользовательских промптов.

https://realpython.com/python-markitdown/

#python

👉 @python_real
2👍1
Основы работы с декораторами Python

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

https://realpython.com/primer-on-python-decorators/

#python

👉 @python_real
👍2