Python RU – Telegram
Python RU
13.2K subscribers
969 photos
71 videos
40 files
1.22K links
Все для python разработчиков

админ - @notxxx1

@python_job_interview - Python собеседования

@ai_machinelearning_big_data - машинное обучение

@itchannels_telegram - 🔥лучшие ит-каналы

@programming_books_it - it книги

@pythonl

РКН: clck.ru/3Fmy2j
Download Telegram
⚡️ Полное руководство по Bash: от основ к продвинутым темам

Bash (Bourne Again SHell) — это одна из самых популярных Unix-оболочек, широко используемая для запуска команд и написания скриптов в Linux и macOS.

Скрипты Bash позволяют автоматизировать рутинные задачи, объединять команды в программы и управлять системой через командную строку.

Данное руководство последовательно познакомит вас с основами Bash (синтаксис, переменные, условия, циклы и т.д.), а затем перейдет к продвинутым возможностям (таким как настройка strict mode, использование trap-обработчиков, планирование задач через cron и др.). Мы рассмотрим практические примеры скриптов, сопровождая их поясняющими комментариями, чтобы у вас сложилось цельное понимание создания надежных Bash-скриптов.

https://uproger.com/polnoe-rukovodstvo-po-bash-ot-osnov-k-prodvinutym-temam/

Видео: https://www.youtube.com/watch?v=ei0a1TT4ukU
5👍3
Боты — это не будущее, это уже норма для Python-разработчика 🐍
Вас спросят на собеседовании: "А вы ботов писали?" И если ответите "нет" — потеряете позицию тому, кто написал.
За 4 месяца вы писать ботов быстро и качественно.
Что будет в стеке:
 aiogram и pyrogram — библиотеки, что нужны в каждом проекте
 Асинхронность (asyncio/await) — напишешь быстрые боты
 FSM, middlewares, webhooks — архитектура, как в боевых условиях
 SQLAlchemy + Postgres — боты со своей БД
 Django админ-панель — управляешь ботом, как профессионал
 AI-интеграции — Hugging Face, локальные модели, бесплатные сервисы РФ
 Docker + облако — задеплоишь, как в real projects
 VK API + Telegram — мультиплатформенность в резюме
Это не курс "Hello Bot" — это боевая подготовка.

Старт 26 ноября — это последний шанс в этом году!
Сейчас скидка 10% на сайте, а по промокоду Chatbots5 скидка ещё 5%!

👉 Регистрация и подробности о курсе: https://tglink.io/8357e54e5f21?erid=2W5zFJaCkVv

#реклама
О рекламодателе
4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥КАК УСТАНОВИТЬ PYTHON: Самый простой способ

Самый быстрый и эффективный способ поставить Python без лишних настроек это использовать пакетный менеджер системы. Он сам подтянет зависимости, поставит актуальную версию и настроит доступ к python и pip. Это надёжнее чем скачивать вручную и проще чем возиться с окружениями. Подходит и новичкам и разработчикам.


# Windows через winget
winget install Python.Python

# macOS через Homebrew
brew install python

# Ubuntu и Debian
sudo apt install python3 python3-pip

# Проверка установленной версии
python3 --version
pip3 --version
😁2👍1🔥1
🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают

Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики Linux, с помощью наглядных картинок и коротких, максимально понятных разборов у себя в тг канале.

- Без воды.
- Без лишней теории.

Только практические приёмы, которые реально используют профи.

Если хочешь уверенно владеть Bash - здесь ты получишь всё, что нужно: t.me/bashmastter
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1👎1
Вопрос с собеседования

Что выведет этот код и почему?


a = [1, 2, 3]
b = a

a += [4, 5]

print(a)
print(b)

a = (1, 2, 3)
b = a

a += (4, 5)

print(a)
print(b)


Попробуй сначала сам ответить, а потом смотри разбор.


Часть 1. Списки
a = [1, 2, 3]
b = a

a += [4, 5]

print(a)
print(b)


Что происходит по шагам:

a = [1, 2, 3]


Переменная a ссылается на список [1, 2, 3].

b = a
Теперь b ссылается на тот же самый список, что и a.
Не копия, а один и тот же объект в памяти.

a += [4, 5]
Важно: для списков += работает как изменение объекта на месте:
это примерно то же самое, что:

a.extend([4, 5])


То есть в существующий список, на который ссылаются и a, и b, добавляются элементы 4 и 5.

Поэтому:

print(a) # [1, 2, 3, 4, 5]
print(b) # [1, 2, 3, 4, 5]


Оба указывают на один изменённый список.

Часть 2. Кортежи
a = (1, 2, 3)
b = a

a += (4, 5)

print(a)
print(b)


Кортежи неизменяемы, и здесь начинается магия.

a = (1, 2, 3)
a ссылается на кортеж (1, 2, 3).

b = a
b ссылается на тот же кортеж (1, 2, 3).

a += (4, 5)
Для кортежей += уже не может менять объект на месте (они immutable).
Поэтому Python делает так:

a = a + (4, 5)


То есть создаётся новый кортеж (1, 2, 3, 4, 5) и переменная a переназначается на него.

b при этом остаётся смотреть на старый кортеж (1, 2, 3).

Поэтому:

print(a) # (1, 2, 3, 4, 5)
print(b) # (1, 2, 3)

В чём хитрость

Для списка a += [4, 5] мутирует объект на месте, и это видно через все переменные, которые на него ссылаются.

Для кортежа a += (4, 5) создаёт новый объект и переназначает только a.

Итого:


# Часть со списком:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

# Часть с кортежем:
(1, 2, 3, 4, 5)
(1, 2, 3)


Если хочешь, могу ещё один хитрый вопрос разобрать - про изменяемые значения по умолчанию в аргументах функции или про циклы и замыкания.
👍138
Media is too big
VIEW IN TELEGRAM
✔️ Как организовать архитектуру большого Python-проекта?

Главная цель - чтобы через полгода было не стыдно открывать код: понятно где что лежит, как это тестировать и куда встраивать новые фичи.

Основные принципы:
- Разделяй по ответственности, а не по типу файла
- Минимизируй связь между слоями
- Явно отделяй ядро домена от инфраструктуры (БД, HTTP, очереди)

Пример базовой структуры:
- app/
- api/ - HTTP handlers, REST, gRPC, CLI
- services/ - бизнес-логика, сценарии use case
- domain/ - сущности, модели, value objects
- repositories/ - работа с БД, кэшами, внешними сервисами
- config/ - настройки, env, схемы конфигурации
- utils/ - вспомогательные функции, которые не завязаны на домен
- tests/ - тесты по тем же модулям, что и в app/
- noscripts/ - миграции, разовые утилиты, maintenance

Рекомендации:
- Один входной файл (main.py или cli.py), вся логика - в app/*
- Конфигурацию не хардкодить, а прокидывать через env и config-объекты
- Внутри services работать с абстрактными интерфейсами репозиториев, а не с конкретным ORM
- С самого начала заводить тесты, пусть даже простые, и поддерживать схему tests/ в том же дереве, что и код
- Любой новый модуль должен отвечать на вопрос: к какому слою относится и от кого ему можно зависеть

Если проект растет, не бойся дробить:
- крупный модуль на подмодули
- общие зависимости в отдельный layer (shared, common)
- разные bounded context в отдельные пакеты внутри app/

Архитектура большого проекта - это не про идеальный паттерн, а про понятные границы и минимальный хаос.

https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/

Видео: https://www.youtube.com/watch?v=Dk7A8ElHcKE
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥1
🕵️‍♂️ Spyder: OSINT Research Tool

Spyder — это универсальный инструмент для открытой разведки (OSINT), который позволяет выполнять поиск информации по крупным глобальным базам данных. Он предоставляет доступ к данным о номерах телефонов, IP-адресах, социальных сетях и многом другом.

🚀Основные моменты:
- Поиск информации о номерах телефонов и IP-адресах
- Доступ к данным социальных сетей (Facebook, Instagram и др.)
- Поиск по именам и физическим адресам
- Проверка доменов и номерных знаков
- Утилита для бомбардировки электронной почты

📌 GitHub: https://github.com/portrret/spyder-osint
1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Python: Эффективное использование контекстных менеджеров

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

from contextlib import contextmanager

@contextmanager
def open_file(filename):
try:
f = open(filename, 'r')
yield f
finally:
f.close()

with open_file('example.txt') as file:
data = file.read()
print(data)


https://www.youtube.com/shorts/I8j3Y6NunYg
5
🧩 Утилиты для C++ и Python

cpp-pyutils предлагает набор инструментов для упрощения взаимодействия между C++ и Python. Библиотека включает функции для работы с данными, что позволяет легко интегрировать оба языка в одном проекте.

🚀 Основные моменты:
- Интеграция C++ и Python
- Удобные функции для работы с данными
- Поддержка кросс-языковых вызовов

📌 GitHub: https://github.com/xZepyx/cpp-pyutils

#cpp
4🔥1
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?

Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.

Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.

Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.

🎁 48 часов действует скидка в 40% процентов

👉 Начать учиться на Stepik
5👍2🔥2
⚡️ Совет по чистому Python-коду:

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

Плохо:


def process(data):
if data:
for x in data:
if x > 10:
print("ok")


Лучше:


def is_valid(x):
return x > 10

def process(data):
for x in data:
if is_valid(x):
print("ok")


Маленькие функции дают:
- читаемость,
- повторное использование,
- простое тестирование.

Пишите код так, чтобы его легко было читать вслух — это лучший индикатор чистоты.
3👎2
🚀 Большое обновление Qwen Code v0.2.2–v0.3.0

Два ключевых обновления:

🎯 Stream JSON
--output-format stream-json — потоковый вывод
--input-format stream-json — структурированный ввод
• 3-уровневая архитектура адаптеров + управление сессиями
• Идеально для SDK, автоматизации и CI/CD

🌍 Полная интернационализация
• Встроенные интерфейсы EN/CN + расширяемые языковые пакеты
/language ui zh-EN - мгновенная смена языка
/language output English - задаём язык ответов модели
• Сообщество может добавлять свои локализации 🌏

🛡️ Безопасность и стабильность выросли
• Защита от переполнения памяти
• Починили кодировки Windows
• Улучшена кроссплатформенность и определение ripgrep
• Переработана авторизация и управление authType
• Стабильный CI/CD и исправленные интеграционные тесты
• Поддержка провайдера ModelScope и stream_options
• Улучшены подсказки, уведомления в терминале и логика завершения промптов
• Множество внутренних фиксов - заметно более стабильная работа 💪

https://github.com/QwenLM/qwen-code
2👍1