About Python [ru]
6.24K subscribers
319 photos
1.58K links
Все о Python: алгоритмы, паттерны проектирования, задачи, нейронные сети

Канал на бирже - https://telega.in/c/python_tesst

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
⚙️ Что такое asyncio.gather в Python и зачем оно используется?

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

➡️ Пример:

import asyncio

async def fetch_data(name, delay):
await asyncio.sleep(delay)
print(f"{name} завершён через {delay} сек.")
return name

async def main():
results = await asyncio.gather(
fetch_data("Задача 1", 2),
fetch_data("Задача 2", 1),
fetch_data("Задача 3", 3)
)
print("Результаты:", results)

asyncio.run(main())


🗣️ В этом примере asyncio.gather запускает три асинхронные задачи параллельно. Результаты всех задач собираются после их завершения. Это ускоряет выполнение по сравнению с последовательным запуском.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Подборка вакансий для мидлов

Python developer
🟢Python, Git, RabbitMQ, PostgreSQL, FastAPI, Apache Airflow
🟢Уровень дохода не указан | от 3 лет

QA Automation Engineer (Python)
🟢Python, тестирование ПО, автоматизация тестирования
🟢Уровень дохода не указан | от 6 месяцев

Python разработчик (удаленно)
🟢Python, Celery, PostgreSQL, Docker, Django, Apache Spark, PyTorch, Greenplum, Apache Airflow
🟢до 200 000 ₽ | от 3 лет

Backend разработчик Python на CRM
🟢Redis, MongoDB, Python, Celery, MySQL, Unix, Docker
🟢от 120 000 ₽ | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Всё про конфиги

Материалы лекции про конфигурационные файлы — все основные аспекты написания и использования конфигов для самых маленьких, примеры кода на python.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
👩‍💻 Проверка на палиндром

Напишите функцию, которая проверяет, является ли строка палиндромом (строка, которая читается одинаково слева направо и справа налево). Функция должна игнорировать пробелы, знаки препинания и различие между верхним и нижним регистром.

Решение задачи🔽

import re

def is_palindrome(s: str) -> bool:
# Убираем все ненужные символы и приводим строку к нижнему регистру
cleaned_string = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
# Проверяем, является ли строка палиндромом
return cleaned_string == cleaned_string[::-1]

# Примеры использования:
print(is_palindrome("A man, a plan, a canal, Panama")) # True
print(is_palindrome("Hello, World!")) # False
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Godot 3.6 с поддержкой python

Использование Python вместо GDScript в Godot: настройка окружения, установка плагина для Python на версии 3.x и сборка игры под Windows. Всё просто и быстро для тех, кто предпочитает Python!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Мир за пределами Pandas: достойные альтернативы для работы с данными

В статье рассмотрены альтернативы Pandas: от колоночной DuckDB и сверхскоростной Polars до мощного Modin и гибкого Vaex. Узнайте их особенности, преимущества и ключевые характеристики.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Подборка вакансий для сеньоров

Разработчик Python (Senior)
Python, SQL, Git, Linux, PyQT6, Qpid, Docker, Vault, SQLAlchemy, Pydantic, lxml, pytest, Jinja, Atlassian
Уровень дохода не указан | от 5 лет

Senior Python/Openstack developer
OpenStack, Python, PostgreSQL, Linux, KVM, Kubernetes, Django, Celery, Ansible
Уровень дохода не указан | от 3 лет

Разработчик Python
Python, FastAPI, Flask, PostgreSQL, MySQL, Kafka, Cassandra, ClickHouse, Redis, Elasticsearch, Kubernetes
Уровень дохода не указан | от 3 лет

Senior Python разработчик
Python, Flask, FastAPI, Aiohttp, Kafka, Artemis MQ, RabbitMQ, Git, Redis, PostgreSQL
Уровень дохода не указан | от 3 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Давайте писать удобное локальное окружение…

Разворачивание нового проекта — боль, но её можно минимизировать. В статье делюсь выстраданной структурой Django-проекта с PDM, которая избавляет от большинства проблем и подходит не только для Python.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Что такое functools.partial в Python и зачем он используется?

functools.partial позволяет создавать новые функции с фиксированными аргументами на основе существующих функций. Это удобно для сокращения вызовов функций или создания функций-обёрток с предопределёнными параметрами.

➡️ Пример:

from functools import partial

def power(base, exponent):
return base ** exponent

# Фиксируем аргумент exponent = 2
square = partial(power, exponent=2)

print(square(5)) # 25
print(square(10)) # 100


🗣️ В этом примере partial создаёт новую функцию square, которая всегда возводит число в квадрат. Это упрощает вызовы функций и улучшает читаемость кода.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Мэтчинг персонажей. Level Hard

Как находить персонажей на гравюрах без ручной разметки данных? В статье рассказывается, как сегментация изображений и контрастивное обучение помогают справиться с датасетом из 25 тысяч гравюр Британского музея.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Массовая асинхронная обработка запросов с последующей синхронной CPU-bound логикой

Как обработать миллион запросов к API, совмещая асинхронный ввод-вывод с тяжелыми вычислениями? В статье разбираются подходы с использованием asyncio и ProcessPoolExecutor для масштабируемости и высокой производительности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🛑 Не спеши рефакторить «чужой хаос»

Зашёл в старый код и захотел всё переделать? Осторожно, это ловушка.

👉 Совет: сначала разберись, почему код написан именно так. Иногда в нём есть скрытая логика, о которой ты не знаешь. Если рефакторить, то только с пониманием контекста, иначе можно сломать больше, чем починить.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка зарубежных вакансий

Python Developer
🟢Python, FastAPI, MongoDB, Redis, LLM integration, Docker, GitLab CI/CD, message queues
🟢Уровень дохода не указан | 3–6 лет опыта

Game Data Analyst
🟢R/Python, SQL, статистический анализ, A/B тестирование, анализ данных
🟢Уровень дохода не указан | 1–3 года опыта

Lead BI Analytics
🟢Power BI, SQL, Python, Agile, Scrum, управление проектами, анализ данных
🟢до 250 000 ₽ | 1–3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Хороший Плохой Злой ИИ Open Source: как мы в Axolotl пушили

Всем привет! Меня зовут Шубин Вадим, я Data Scientist в компании Raft Digital Solutions. В этой статье я хотел бы рассказать о нашем опыте с фейл-сабмитом в существующий опенсорс-проект Axolotl и о том, какие уроки из него мы извлекли. Но обо всём по порядку. Давайте начнем!

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Почему A/B тесты — это не всегда хорошая идея?

В статье рассматриваются недостатки A/B тестирования, включая его временные и ресурсные затраты, а также случаи, когда тесты оказываются неэффективными. Обсуждается, как рационально подходить к выбору этого метода.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Генератор случайных паролей с настройками

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

Использовать ли цифры.
Использовать ли буквы верхнего и/или нижнего регистра.
Использовать ли специальные символы.

➡️ Пример:

password = generate_password(length=12, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=False)
print(password)
# Пример вывода: A1b2C3d4E5f6


Решение задачи🔽

import random
import string

def generate_password(length, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=True):
if length < 1:
raise ValueError("Длина пароля должна быть больше 0")

# Формируем набор символов
character_pool = ""
if use_digits:
character_pool += string.digits
if use_uppercase:
character_pool += string.ascii_uppercase
if use_lowercase:
character_pool += string.ascii_lowercase
if use_specials:
character_pool += "!@#$%^&*()-_=+[]{}|;:,.<>?/"

if not character_pool:
raise ValueError("Нужно выбрать хотя бы один тип символов")

# Генерация пароля
return ''.join(random.choice(character_pool) for _ in range(length))

# Пример использования
password = generate_password(length=12, use_digits=True, use_uppercase=True, use_lowercase=True, use_specials=True)
print(password)
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 UV как альтернатива Poetry

UV — новый пакетный менеджер на Rust для Python. Быстрее Poetry, удобнее Pipenv, с контролем версий Python и современным CLI. Узнайте, как UV меняет подход к управлению зависимостями.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Опыт Звука: как реализовать рекомендательную систему аудиокниг с использованием больших языковых моделей (LLM)

В статье рассказывается, как в HiFi-стриминге «Звук» создали систему рекомендаций для аудиокниг. Разбираем подходы, алгоритмы и логику, лежащие в основе подбора похожих книг.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM