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

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

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

Модуль contextlib предоставляет утилиты для работы с контекстными менеджерами. Он позволяет создавать собственные контекстные менеджеры без необходимости вручную реализовывать методы __enter__ и __exit__. Это упрощает управление ресурсами, такими как файлы или сетевые соединения.

➡️ Пример:

from contextlib import contextmanager

@contextmanager
def managed_file(name):
f = open(name, 'w')
try:
yield f
finally:
f.close()
print(f'Файл {name} закрыт.')

# Использование контекстного менеджера
with managed_file('example.txt') as f:
f.write('Привет, мир!')


🗣️ В этом примере @contextmanager создаёт контекстный менеджер для работы с файлом. Файл автоматически закрывается после выполнения блока with, даже если произойдёт ошибка.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Делаем управление конфигами удобным при помощи pydantic_settings

В этой статье научимся использовать модуль pydantic_settings, который позволяет разработчикам легко управлять настройками проекта и загружать их из разных источников, таких как переменные окружения и файлы json, yaml, toml, а также дает доступ к легкой валидации вводимых значений

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

Как ускорить вычисления в Python? Статья покажет, как оптимизировать код на GPU для работы с большими данными и ML-моделями. Простые техники без смены языка и алгоритмов на примере набора Online Retail.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Фиксируй не только задачи, но и решения

Нашёл элегантное решение проблемы, а через полгода снова столкнулся с такой же задачей и не помнишь, как её решал?

👉 Совет: заведи личную базу знаний. Это может быть Notion, Obsidian или обычный Markdown-файл. Записывай туда сложные решения, редкие команды терминала, полезные ссылки. Со временем у тебя будет своя «документация» по работе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка зарубежных вакансий

Backend & Data Scientist Engineer
🟢Python, TensorFlow, PyTorch, FastAPI, LLM, PostgreSQL, Docker
🟢до 4 000 $ | 3–6 лет

Python Engineer
🟢Python, FastAPI, PostgreSQL, Redis, Pydantic, SQLAlchemy, Alembic
🟢Уровень дохода не указан | 6+ лет

Квант-аналитик / Quantitative analyst / Квант (Web3)
🟢Python, C++, Machine Learning, Trading, Blockchain, Web3, API, Quant, маркетмейкинг
🟢от 2 000 $ | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

Статья углубляется в Django-миграции для новичков. Разбираются фиктивные применения, миграции данных, «сухая проверка» и частые ошибки. Примеры из практики и полезные советы помогут освоить процесс.

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

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

Пример:

search_in_file('example.txt', 'python')

Если в example.txt есть строки, содержащие слово "python" (в любом регистре), они будут напечатаны.

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

def search_in_file(file_path, query):
query_lower = query.lower()
found = False

with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
if query_lower in line.lower():
print(line.strip())
found = True

if not found:
print("Ничего не найдено.")

# Пример использования
# search_in_file('example.txt', 'python')
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Функциональные зависимости в таблице (удобный форк FDTool для python3)

Разбираем функциональные зависимости в таблицах и библиотеку FDTool для Python. Как эффективно работать с большими и сложными таблицами, понимая их архитектуру и зависимости.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Парсинг и подсчёт количества слов в текстовом файле

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

Пример:

# Содержимое файла example.txt:
# "Hello, world! This is a test. Hello again."

result = count_words_in_file("example.txt")
print(result)
# Ожидаемый результат:
# {'hello': 2, 'world': 1, 'this': 1, 'is': 1, 'a': 1, 'test': 1, 'again': 1}


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

import string
from collections import Counter

def count_words_in_file(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
text =
f.read().lower()
text = text.translate(str.maketrans('', '', string.punctuation))
words = text.split()
return dict(Counter(words))

# Пример использования
result = count_words_in_file("example.txt")
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Junior Backend Developer (Python, FastAPI, PostgreSQL)
🟢Python, FastAPI, PostgreSQL
🟢от 50 000 до 100 000 ₽ | Без опыта

Junior Python Developer
🟢Python, SQL, GitHub, REST API, Linux, Алгоритмы и структуры данных, Flask
🟢от 75 000 ₽ | Без опыта

Prompt Engineer / Python Backend Developer Junior
🟢Python, FastAPI, PostgreSQL, LLM модели (GPT-3.5/4, Claude, Llama), prompt engineering, QA тестирование
🟢от 20 000 до 40 000 ₽ | 1–3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Сортировка книг по тематикам скриптами Python

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

Читать...
Please open Telegram to view this post
VIEW IN 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