Python RU
Все для python разработчиков админ - @haarrp @python_job_interview - Python собеседования @ai_machinelearning_big_data - машинное обучение @itchannels_telegram - 🔥лучшие ит-каналы @programming_books_it - it книги @pythonl РКН: clck.ru/3Fmy2j
Show more📈 Analytical overview of Telegram channel Python RU
Channel Python RU (@pro_python_code) in the Russian language segment is an active participant. Currently, the community unites 12 386 subscribers, ranking 9 837 in the Technologies & Applications category and 52 002 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 386 subscribers.
According to the latest data from 26 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -60 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 8.60%. Within the first 24 hours after publication, content typically collects 3.36% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 065 views. Within the first day, a publication typically gains 416 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 5.
- Thematic interests: Content is focused on key topics such as api, docker, github, sql, linux.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все для python разработчиков
админ - @haarrp
@python_job_interview - Python собеседования
@ai_machinelearning_big_data - машинное обучение
@itchannels_telegram - 🔥лучшие ит-каналы
@programming_books_it - it книги
@pythonl
РКН: clck.ru/3Fmy2j”
Thanks to the high frequency of updates (latest data received on 27 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
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
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)
Если хочешь, могу ещё один хитрый вопрос разобрать - про изменяемые значения по умолчанию в аргументах функции или про циклы и замыкания.
Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = 'user@example.com';
-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = 'user@example.com';
-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));
import openai
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
openai.api_key = "sk-..."
async def chatgpt_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_input = update.message.text
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": user_input}]
)
await update.message.reply_text(response.choices[0].message.content)
app = ApplicationBuilder().token("TELEGRAM_BOT_TOKEN").build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, chatgpt_handler))
app.run_polling()1️⃣20 ноября — день Бизнеса: разберём успешные кейсы внедрения, оценим эффективность и практические результаты. 2️⃣ 21 ноября — день Науки: проведём глубокий анализ IT-решений, прорывных научных исследований, R&D-разработок и передовых методик.На треке вас ждут выступления ведущих экспертов в AI, постер-сессия, специальные форматы для нетворкинга и выставка R’n’D решений. Это уникальная возможность обсудить сложные вопросы с теми, кто действительно понимает ваши вызовы. Где? Офис Сбера, Кутузовский проспект, д. 32, к. 1 (Е) Когда? 20–21 ноября 2025 года По ссылке — форма регистрации на очное участие. Присоединяйтесь к профессиональному AI-сообществу!
pytest --lfЭто ускоряет цикл разработки в разы. Делай минимум — получай максимум. Это путь зрелого Python-инженера. #python #pytest #unittesting #softwaretesting #devtips #engineering
