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

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

По вопросам рекламы или разработки: @g_abashkin
Download Telegram
👩‍💻 Как я создал Telegram-бота для хранения файлов и чуть не стал библиотекарем

Узнайте, как я превратил свой Telegram в персональную файловую систему с помощью бота на Python. В статье делюсь опытом разработки, полным кодом и лайфхаками.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Сравнение Bash и Python при написании скпритов в Linux

Командный интерпретатор Bash и язык программирования Python — два ключевых инструмента в работе с Linux-системами. В статье сравниваются их возможности для скриптов и системных задач.

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

Senior/Middle full stack Python/Django разработчик (удаленно, почасовая)
Python, Django, PostgreSQL, HTML, CSS, JavaScript, Bootstrap, Tailwind, Git, Linux
от 100 000 до 160 000 ₽ | 3–5 лет опыта

Продуктовый аналитик
SQL, Python, системы визуализации (Power BI, Tableau, Datalens, Superset, Google Data Studio, QlikView/QlikSense), аналитические системы (Appsflyer, Amplitude, Firebase, Mixpanel, Google Analytics, Яндекс.Метрика, AppMetrica)
до 270 000 ₽ | 3–5 лет опыта

Senior Backend Engineer
Python, Django, PostgreSQL, Golang, микросервисная архитектура, AWS (RDS, DocumentDB), юнит-тестирование
от 3 000 $ | 5 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Укрощение монстров: мониторинг и управление ресурсоемкими запросами в Django + PostgreSQL

Каждый Django-разработчик рано или поздно сталкивается с неожиданно «тяжелыми» запросами, способными превратить быстрое приложение в неповоротливого слона. Рассказываем, как с помощью django-pgactivity выследить и обезвредить такие запросы, прежде чем они создадут проблемы вашим пользователям.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как работает декоратор @property в Python и зачем он нужен?

Декоратор @property в Python превращает метод класса в атрибут, позволяя работать с ним, как с обычным свойством. Это упрощает доступ к приватным данным и добавляет контроль за их валидацией и изменением.

С помощью @property можно создавать интерфейс для работы с данными объекта, защищая их от некорректных значений и обеспечивая читаемость кода.

➡️ В этом примере декоратор @property используется для создания свойства age, которое проверяет корректность введенного значения:

class Person:
def __init__(self, age):
self._age = age

@property
def age(self):
return self._age

@age.setter
def age(self, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным.")
self._age = value

p = Person(30)
p.age = 35 # Работает нормально
print(p.age) # 35
p.age = -5 # ValueError: Возраст не может быть отрицательным.


🗣 Использование @property полезно для создания аккуратного интерфейса доступа к данным с их защитой и валидацией, соблюдая при этом принципы инкапсуляции.


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

Lead/Senior Automation QA (Python or Java)
Python, Linux, Java, CI/CD, Docker, Тестирование API, Тестирование UI, Разработка тест-кейсов
Уровень дохода не указан | от 4 лет опыта

Data Science Tech Lead/Product owner
Python, SQL
Уровень дохода не указан | более 5 лет опыта

Ведущий разработчик / Техлид Openstack
Python, Linux, Openstack, Golang
Уровень дохода не указан | от 3 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Кастомизация Django Admin. Часть 1: Структура шаблонов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🛡 Никогда не выключай проверки кода

Ты в конце дня, устал, и хочется побыстрее смёрджить PR, чтобы закрыть задачу? Удержись от соблазна.

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

DevOps-инженер
🟢Linux, Docker, HashiCorp Vault, Nomad, Consul, Jenkins, Ansible, GitLab, Zabbix, Prometheus, Grafana, Python, Bash, ELK, MongoDB, Riak
🟢Уровень дохода не указан | от 4 лет опыта

Senior QA Engineer (Server Team)
🟢Тестирование, Тестирование back-end, API, Python, CI/CD, GitLab, TeamCity, Jenkins, Postman, Charles
🟢Уровень дохода не указан | 3–6 лет опыта

Fullstack System Analyst
🟢UML Sequence Diagrams, SaaS, Интеграция с внешними сервисами, Английский язык (B2), Русский язык (C1)
🟢Уровень дохода не указан | от 3 лет опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

Статья объясняет, как создать приложение для автоматического анализа онлайн-встреч. Используя API BotHub (Whisper-1 + Claude 3.5 Sonnet), вы научитесь извлекать ключевые идеи, распределять задачи и генерировать отчёты в формате PDF.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

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

➡️ Пример:

[10, 20, 4, 45, 99]
45

[5, 5, 5]
None


Решение задачи ⬇️

def find_second_largest(numbers):
# Удаляем дубликаты и сортируем список в порядке убывания
unique_numbers = sorted(set(numbers), reverse=True)
# Если уникальных чисел меньше двух, возвращаем None
return unique_numbers[1] if len(unique_numbers) >= 2 else None

# Пример использования:
print(find_second_largest([10, 20, 4, 45, 99])) # Ожидаемый результат: 45
print(find_second_largest([5, 5, 5])) # Ожидаемый результат: None
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Зачем нужны эмбеддинги?

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Создайте Python-скрипт, который проверяет доступность указанного веб-сервера и отправляет уведомление на почту, если сервер недоступен. Скрипт должен выполнять проверку каждые 5 минут и отправлять уведомление только один раз, если сервер падает, а затем повторно — только когда сервер снова станет доступен.

➡️ Пример:

python monitor.py https://example.com — проверяет доступность сервера по адресу https://example.com, отправляет уведомление на почту, если сервер перестаёт отвечать, и повторно уведомляет при восстановлении работы.

Решение задачи ⬇️

import requests
import time
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import sys

# Настройки для отправки уведомлений
SMTP_SERVER = '
smtp.example.com'
SMTP_PORT = 587
EMAIL = '
your-email@example.com'
PASSWORD = 'your-password'
TO_EMAIL = '
recipient@example.com'

# Функция для отправки уведомления
def send_notification(subject, message):
msg = MIMEMultipart()
msg['From'] = EMAIL
msg['To'] = TO_EMAIL
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))

with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.starttls()
server.login(EMAIL, PASSWORD)
server.sendmail(EMAIL, TO_EMAIL, msg.as_string())
print(f"Уведомление отправлено: {subject}")

# Функция для проверки доступности сервера
def check_server(url):
try:
response = requests.get(url, timeout=5)
return response.status_code == 200
except requests.RequestException:
return False

# Основная функция мониторинга
def monitor(url):
server_is_down = False

while True:
is_up = check_server(url)

if is_up and server_is_down:
send_notification("Сервер восстановлен", f"Сервер {url} снова доступен.")
server_is_down = False
elif not is_up and not server_is_down:
send_notification("Сервер недоступен", f"Сервер {url} перестал отвечать.")
server_is_down = True

time.sleep(300) # Проверка каждые 5 минут

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Укажите URL сервера для мониторинга.")
sys.exit(1)

url = sys.argv[1]
monitor(url)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Full-stack Python разработчик Junior/Junior+
🟢Python, CSS, HTML, SQL, Linux
🟢от 50 000 ₽ до вычета налогов | 1–3 года опыта

Junior Python разработчик
🟢Python, FastAPI, MongoDB, Redis, RabbitMQ, GitLab
🟢до 80 000 ₽ на руки | 1–3 года опыта

Junior Python разработчик
🟢Python, FastAPI, SQL, Hasura, Vue.js, Docker, Git
🟢от 45 000 до 60 000 ₽ на руки | 1–3 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Двусвязный список в Python: простой инструмент для сложных задач

Эта статья написана для новичков, которые только начинают осваивать структуры данных на Python. Сегодня мы рассмотрим замечательную и очень полезную структуру — двусвязный список.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Как работает менеджер контекста (context manager) в Python?

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

➡️ В этом примере показано, как использовать менеджер контекста для работы с файлами:
with open('file.txt', 'r') as file:
content = file.read()

Здесь файл автоматически закроется после завершения блока with, даже если внутри него возникнет ошибка.

🗣️ Менеджеры контекста полезны для автоматического управления ресурсами и обработки исключений.


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

Python разработчик (офис)
Python, FastAPI, aiohttp, polars, Spark, Jupyter, ElasticSearch, PostgreSQL, Redis, RabbitMQ, Kubernetes, GitLab CI
от 150 000 до 250 000 ₽ | от 1 года опыта

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

Middle Python developer
Python, SQL, Firebird, Apache2, Nginx, REST API, JSON-RPC, Git
Уровень дохода не указан | от 1 года опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Эксперимент: даём ChatGPT полный доступ к компьютеру

В статье рассказывается о личном опыте создания проекта в программировании. Это не инструкция или руководство, а просто история новичка, который делится своей идеей, потому что подобного проекта он не нашел в сети.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по Python

Создайте Python-приложение, которое принимает строку и определяет частоту встречаемости каждого символа в этой строке. Программа должна выводить результаты в консоль и сохранять их в файл char_count.json.

➡️ Пример:

python app.py count "Hello, World!" — выводит количество каждого символа и сохраняет в char_count.json.

Решение задачи ⬇️

import json
import sys
from collections import Counter

def count_chars(text):
count = Counter(text)
print(count)
with open('char_count.json', 'w') as f:
json.dump(count, f)

if __name__ == "__main__":
if len(sys.argv) > 1:
count_chars(sys.argv[1])
else:
print("Укажите строку для подсчета символов.")
Please open Telegram to view this post
VIEW IN TELEGRAM