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
QA Automation Engineer (Python)
Python разработчик (удаленно)
Backend разработчик Python на CRM
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
Использование Python вместо GDScript в Godot: настройка окружения, установка плагина для Python на версии 3.x и сборка игры под Windows. Всё просто и быстро для тех, кто предпочитает Python!
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассмотрены альтернативы 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
• Рецензия на книгу «MySQL. Сборник рецептов. 4-е издание»
• Чек-лист тестировщика в финансовой компании
• Чем Cloud-инженер отличается от DevOps-инженера и что между ними общего
• Базовое программирование, или Почему джуны не могут пройти к нам собеседование
• Я стал аналитиком, потому что не смог быть программистом
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
Как находить персонажей на гравюрах без ручной разметки данных? В статье рассказывается, как сегментация изображений и контрастивное обучение помогают справиться с датасетом из 25 тысяч гравюр Британского музея.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Как обработать миллион запросов к 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
Game Data Analyst
Lead BI Analytics
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет! Меня зовут Шубин Вадим, я Data Scientist в компании Raft Digital Solutions. В этой статье я хотел бы рассказать о нашем опыте с фейл-сабмитом в существующий опенсорс-проект Axolotl и о том, какие уроки из него мы извлекли. Но обо всём по порядку. Давайте начнем!
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
• Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1
• Python: неочевидное и вероятное
• Пишем свой PyTorch на NumPy. Часть 1
• Polars vs Pandas: битва титанов. Кто кого?
• Telegram-бот-магазин на Python: пошаговый гайд с оплатой, каталогом и админкой (Aiogram 3 + SQLAlchemy 2)
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассматриваются недостатки 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 — новый пакетный менеджер на Rust для Python. Быстрее Poetry, удобнее Pipenv, с контролем версий Python и современным CLI. Узнайте, как UV меняет подход к управлению зависимостями.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
В статье рассказывается, как в HiFi-стриминге «Звук» создали систему рекомендаций для аудиокниг. Разбираем подходы, алгоритмы и логику, лежащие в основе подбора похожих книг.
Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM