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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
🔎 Подборка вакансий для джунов

Junior Python-backend разработчик в VPN-сервис
🟢Python 3.12, asyncio, Aiogram 3, aiohttp, REST API, FastAPI, Redis, планировщики задач (apscheduler)
🟢от 50 000 до 80 000 ₽ | 1–3 года опыта

Junior IT специалист | Системный аналитик
🟢SQL, Python, реляционные базы данных, REST, API, SOAP, Scrum, JSON, XML, BPMN, UML
🟢от 100 000 до 160 000 ₽ | Без опыта

Junior Python Backend разработчик
🟢Python, FastAPI, PostgreSQL, SQLAlchemy
🟢от 40 000 ₽ | Без опыта
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
⚙️ Что такое any и all в Python и зачем они используются?

any и all — это встроенные функции в Python, которые проверяют значения в итерируемом объекте.

any возвращает True, если хотя бы одно значение истинное.
all возвращает True, если все значения истинные.

➡️ Пример:
numbers = [0, 2, 4, 6]

# Проверка: есть ли хотя бы одно ненулевое число
print(any(numbers)) # True

# Проверка: все ли числа ненулевые
print(all(numbers)) # False


🗣️ В этом примере any возвращает True, так как есть ненулевые значения, а all — False, так как присутствует 0. Эти функции полезны для упрощения проверки условий в списках и других коллекциях.


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

Инженер по автоматизации (Python)
Python, SQL, Docker, Kubernetes
Уровень дохода не указан | 1–3 года

Middle/Senior Python-разработчик
Python, Django, SQLAlchemy, PostgreSQL, Celery, Linux
Уровень дохода не указан | Более 6 лет

Middle Fullstack Python/SQL разработчик
Python, SQL, PostgreSQL, Redis, RabbitMQ, Flask, SQLAlchemy, Docker, Oracle, Vue.js
Уровень дохода не указан | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Простое управление настройками приложения в проекте на django

Как добавить кучу настроек для администратора в свой проект на django без дополнительных сервисов feature-toggle и потом в них не потеряться.

Читать...
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
👩‍💻 Хороший Плохой Злой ИИ 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
🔎 Подборка вакансий для сеньоров

Senior Python Developer
🟢Python, Django, MySQL, Redis, Kafka, ClickHouse, Grafana
🟢от 3 000 $ на руки | Более 6 лет

Senior Backend Developer (Python\Go)
🟢Python, Go, Flask, PostgreSQL, Kafka, Kubernetes, Docker, Celery, FastAPI
🟢до 300 000 ₽ на руки | 3–6 лет

DevOps / Backend Developer (Python)
🟢Python, Django Rest Framework, FastAPI, PostgreSQL, Redis, RabbitMQ, Linux, Docker
🟢от 250 000 ₽ на руки | 3–6 лет
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
⚙️ Что такое __slots__ в Python и зачем он используется?

__slots__ — это специальный атрибут класса, который определяет фиксированный набор атрибутов, которые можно создать для объекта. Это помогает уменьшить потребление памяти, так как исключает использование стандартного словаря __dict__ для хранения атрибутов экземпляра.

➡️ Пример:

class Person:
__slots__ = ['name', 'age'] # Определяем допустимые атрибуты

def __init__(self, name, age):
self.name = name
self.age = age

p = Person("Alice", 30)
print(p.name) # Alice

# Ошибка: нельзя добавить атрибут, не указанный в __slots__
# p.address = "123 Main St"


🗣️ В этом примере класс Person использует __slots__ для ограничения набора атрибутов до name и age. Это экономит память, так как каждый экземпляр хранит только указанные атрибуты, без лишнего словаря. Используйте __slots__ в классах, где создаётся много экземпляров, чтобы оптимизировать использование памяти.


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

Lead Python Developer
🟢Python, C/C++, UML
🟢от 450 000 до 600 000 ₽ | более 6 лет

Team Lead (Python)
🟢Python, FastAPI, SQLAlchemy, PostgreSQL, Kafka, Alembic, Docker, Kubernetes, GraphQL
🟢Уровень дохода не указан | 3–6 лет

Python-разработчик (Senior/Lead)
🟢Python, Django, FastAPI, Aiohttp, PostgreSQL, MongoDB, Redis, Kubernetes
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Опыт Звука: как реализовать рекомендательную систему аудиокниг с использованием больших языковых моделей (LLM)

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💾 Учись правильно хранить секреты

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

👉 Совет: храни ключи, пароли и другие секреты в .env-файлах или специализированных хранилищах вроде Vault. Это не только защита данных, но и хороший тон для всей команды. Один раз настроишь — и забудешь о проблемах.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка зарубежных вакансий

Data Scientist / Machine Learning Engineer
🟢Python, Machine Learning, LLM, Prompt Engineering, Fine-tuning, RLHF, AI Copilot, NLP, Natural Language Processing, SQL, Recommender systems, Data Science, Big Data
🟢Уровень дохода не указан | 3–6 лет

TeamLead QA Automation Engineer (Python)
🟢Python, Автоматизированное тестирование, Руководство коллективом
🟢от 1 500 $ до вычета налогов | 3–6 лет

Python Software Engineer (blockchain)
🟢Python, aiohttp, fastapi, flask, MySQL, PostgreSQL, gRPC, REST, Websockets, Unix, Docker, Microservices
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Проверка стиля комментариев Python с помощью pre-commit

В статье представлен инструмент для автоматизации проверки стиля комментариев в коде, что помогает сократить время на код-ревью. Разбираются примеры, принципы работы и случаи, охваченные линтером.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Генерация списка файлов в директории

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

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

import os
import sys

def list_files(directory):
if not os.path.isdir(directory):
print(f"Ошибка: {directory} не является директориeй.")
return

for root, _, files in os.walk(directory):
for file in files:
print(os.path.join(root, file))

# Чтение пути из аргументов командной строки
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Использование: python list_files.py <path_to_directory>")
else:
list_files(sys.argv[1])
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Следим за Telegram по-деловому

Полгода с бизнес-режимом в Telegram: 300 000 использований. Разбираем, как эффективно применять функцию и избежать блокировки аккаунта, сохранив доступ к миллионам сообщений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Поиск числа с максимальной суммой цифр

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

Пример:

numbers = [123, 456, 789, 234]
result = max_digit_sum(numbers)
print(result)
# Ожидаемый результат: 789 (7+8+9=24, это максимальная сумма)


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

def max_digit_sum(numbers):
def digit_sum(n):
return sum(int(digit) for digit in str(n))

return max(numbers, key=digit_sum)

# Пример использования:
numbers = [123, 456, 789, 234]
result = max_digit_sum(numbers)
print(result) # Ожидаемый результат: 789
Please open Telegram to view this post
VIEW IN TELEGRAM