Python вопросы с собеседований
25.6K subscribers
638 photos
71 videos
17 files
520 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
🖥 Лучшие практики написания кода на Python (2026)

При разработке на Python следует руководствоваться философией The Zen of Python (PEP 20) – набором принципов, подчеркивающих важность простоты и ясности кода.

Например, “Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex.” («Красивое лучше, чем некрасивое. Явное лучше неявного. Простое лучше сложного.»).

Один из ключевых афоризмов Zen of Python гласит: “Readability counts.” («Читаемость кода имеет значение»), и действительно, код читается гораздо чаще, чем пишется. Поэтому чистый код – это код, который легко читать и поддерживать.

Мы собрали современные рекомендации по стилю кода в этой статье: https://uproger.com/luchshie-praktiki-napisaniya-koda-na-python-2026-2/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Используй `pdb` вместо print для надежной отладки!

Использование оператора `print` для отладки может привести к недоразумениям и пропущенным ошибкам, поскольку он не позволяет видеть контекст выполнения программы. Вместо этого используйте встроенные инструменты для отладки, такие как `pdb`, которые дают возможность устанавливать точки остановки, отслеживать выполнение и исследовать состояние переменных в реальном времени.

Подписывайся, больше фишек каждый день !

import pdb
def calculate_factorial(n):
if n < 0:
raise ValueError("Negative values are not allowed")
elif n == 0:
return 1
else:
return n * calculate_factorial(n - 1)
def main():
num = 5
pdb.set_trace() # Запускаем отладчик здесь
result = calculate_factorial(num)
print(f"Factorial of {num} is {result}")
if __name__ == "__main__":
main()

t.me/ai_machinelearning_big_data - наш телеграм канал с уроками
2👍2🔥1
🧩 Минималистичный код для Claude

Nanocode — это компактная альтернатива Claude Code, реализованная в одном файле на Python без зависимостей. Он включает полный агентный цикл с использованием инструментов для работы с файлами и ведения истории беседы.

🚀Основные моменты:
- Полный агентный цикл с использованием инструментов
- Инструменты: read, write, edit, glob, grep, bash
- Ведение истории беседы
- Цветной вывод в терминале

📌 GitHub: https://github.com/1rgs/nanocode

#python
3👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 КАК РАБОТАЕТ ВНИМАНИЕ (ATTENTION) В ТРАНСФОРМЕРАХ

Механизм внимания - это способ для модели “смотреть” на разные слова в тексте и решать, какие из них сейчас важнее.

Представь фразу: “Я положил ключи на стол, потому что он был рядом”.
Слово “он” должно ссылаться на “стол”, а не на “ключи”.
Внимание делает ровно это - для каждого слова вычисляет, на какие другие слова нужно опираться сильнее.

Как это работает в одном абзаце:

Для каждого токена модель строит три вектора - Query (что я ищу), Key (что я из себя представляю), Value (какую информацию несу).

Считается “похожесть” Query к каждому Key - это оценки важности.

Оценки нормализуются (softmax), чтобы получились веса от 0 до 1.

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

Почему это суперсила:
вместо того чтобы читать текст строго слева направо, модель может связывать дальние куски, находить нужные факты и строить смысловые зависимости. Именно поэтому трансформеры так хорошо работают с языком, кодом и длинным контекстом.


import numpy as np

def softmax(x: np.ndarray) -> np.ndarray:
x = x - np.max(x) # стабилизация
e = np.exp(x)
return e / np.sum(e)

# Допустим, у нас 3 токена в контексте.
# Для простоты возьмём маленькую размерность векторов (d=2).
# Query - "что я ищу"
# Key - "что я такое"
# Value - "какую инфу несу"

Q = np.array([1.0, 0.5]) # Query для текущего токена (например, слово "он")

K = np.array([
[1.0, 0.0], # Key токена 1 (например, "ключи")
[0.9, 0.1], # Key токена 2 (например, "стол")
[0.0, 1.0], # Key токена 3 (например, "рядом")
])

V = np.array([
[10.0, 0.0], # Value токена 1
[0.0, 10.0], # Value токена 2
[5.0, 5.0], # Value токена 3
])

# 1) Считаем "похожесть" Q на каждый K через скалярное произведение
scores = K @ Q # shape: (3,)
print("scores:", scores)

# 2) Нормализуем оценки -> получаем веса внимания
weights = softmax(scores)
print("attention weights:", weights)

# 3) Итоговый вектор = взвешенная сумма Value
output = weights @ V # shape: (2,)
print("output (context mixed):", output)

# Интерпретация:
# Если вес токена 2 ("стол") самый большой, значит модель "смотрит" на него сильнее всего.
5🙏3👍1🔥1
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇

🖥 ИИ: t.me/ai_machinelearning_big_data

🖥 Python: t.me/pythonl

🖥 Linux: t.me/linuxacademiya

🖥 C++ t.me/cpluspluc

🖥 Docker: t.me/DevopsDocker

🖥 Хакинг: t.me/linuxkalii

🖥 Devops: t.me/DevOPSitsec

👣 Golang: t.me/Golang_google

🖥 Аналитика: t.me/data_analysis_ml

🖥 Javascript: t.me/javascriptv

🖥 C#: t.me/csharp_ci

🖥 Java: t.me/javatg

🖥 Базы данных: t.me/sqlhub

👣 Rust: t.me/rust_code

🤖 Технологии: t.me/vistehno

💰 Экономика и инвестиции в ИИ t.me/financeStable

💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi

🖥 Chatgpt бот в тг: t.me/Chatgpturbobot

📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy

🖥Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi

⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy

Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Самая крутая фича Python 3.14 - `sys.remote_exec()` (объясняю по-человечески)

Идея простая:
у тебя уже запущено Python-приложение (например FastAPI в Docker/K8s)
оно уже дошло до нужного состояния (в памяти есть переменные, сессии, кеши)
но тебе нужно посмотреть “что внутри” или поставить дебаггер

Раньше ты делал так:
- добавлял debugpy в код
- перезапускал приложение
- заново воспроизводил баг

Python 3.14 даёт новый чит-код:

sys.remote_exec() позволяет выполнить кусок Python-кода ВНУТРИ уже работающего Python-процесса.
То есть буквально “вколоть” скрипт в живой процесс.

Это как:
🔹 зайти внутрь процесса
🔹 выполнить print(), импорт, запись переменных
🔹 или даже подключить дебаггер
без рестарта вообще.


Пример: что можно сделать через sys.remote_exec()

Допустим у нас есть работающий процесс Python.

1) Мы хотим “добавить” туда код:
- вывести PID
- посмотреть глобальные переменные
- записать лог
- даже поменять значение переменной


# Этот код выполняется СНАРУЖИ и запускает инжект внутрь процесса
import sys

target_pid = 12345 # PID запущенного Python процесса

payload = r"""
import os
import time

print(" Injected into running process!")
print("PID:", os.getpid())
print("Time:", time.time())

# Пример: читаем что есть в глобальном пространстве
g = globals()
print("Globals keys sample:", list(g.keys())[:10])

# Пример: создаём переменную прямо в процессе
INJECTED_FLAG = True
"""

# Новое API Python 3.14
sys.remote_exec(target_pid, payload)



Пример 2: инжектим debugpy (дебаг без рестарта)


Самая хайповая штука - можно подключить debugpy в уже живое приложение.
То есть приложение уже крутится, у него есть состояние, и ты просто включаешь “прослушку” дебаггера на порту.


import sys

target_pid = 12345 # PID работающего uvicorn / fastapi процесса

payload = r"""
import debugpy

HOST = "0.0.0.0"
PORT = 5679

debugpy.listen((HOST, PORT))
print(f"🐞 debugpy is listening on {HOST}:{PORT}")

# если хочешь остановить выполнение и ждать пока подключишь IDE:
# debugpy.wait_for_client()
# print(" debugger attached!")
"""

sys.remote_exec(target_pid, payload)


Дальше:
- ты делаешь port-forward (если Docker/K8s)
- подключаешь VS Code / PyCharm / nvim к localhost:5679
- ставишь breakpoints и дебажишь как обычно


Что важно

1) Это не “удалённое выполнение” как ssh.
Это прям “внутри процесса” - доступ к памяти, переменным, импортам.

2) Это опасно для продакшена.
Требует прав уровня SYS_PTRACE (можно читать/менять процессы) - поэтому только для локалки/стендов.

3) Это может стать стандартом для отладки контейнеров:
- баг воспроизводится только в k8s
- рестарт = баг пропал
- а тут просто подключился и посмотрел

https://www.youtube.com/watch?v=bYPFktmui4c
🔥65👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 АВТОКЛИКЕР НА PYTHON ЗА 30 СЕКУНД.

Автокликер — одна из самых полезных мини-автоматизаций на Python. Он помогает убрать рутину: клики в интерфейсах, тестирование кнопок, автоматическое выполнение повторяющихся действий в браузере или приложениях.

Главная идея — управлять мышью программно. Библиотека pyautogui позволяет:

• кликать в нужной точке экрана

• двигать курсор

• задавать интервалы между действиями

• быстро остановить скрипт при необходимости

Такой подход часто используют для:

• UI-тестирования
• автоматизации веб-задач
• игр и симуляторов
• массовых операций в админках

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


Установка:
pip install pyautogui

import pyautogui
import time

# Безопасность: переместите мышь в верхний левый угол, чтобы аварийно остановить
pyautogui.FAILSAFE = True

# Пауза перед стартом (5 секунд, чтобы открыть нужное окно)
print("Старт через 5 секунд...")
time.sleep(5)

# Координаты для клика (узнать можно через pyautogui.position())
x, y = 800, 500

# Количество кликов
clicks = 100

# Интервал между кликами (в секундах)
interval = 0.5

for i in range(clicks):
pyautogui.click(x, y)
print(f"Клик {i+1}")
time.sleep(interval)

print("Готово!")


⚡️Max
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2
🖥 Python: пакет packaging стал ощутимо быстрее — и это реально заметно в больших проектах

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

Главное, что ускорили:

• Быстрее парсинг и сравнение версий (`Version` и `SpecifierSet`).
• Некоторые операции (сравнения, фильтрации, хэши) стали в несколько раз быстрее.
• Оптимизации направлены на самые “узкие места”, которые чаще всего тормозят pip и другие инструменты.

Почему это важно для тебя:

• pip будет работать быстрее при установке больших стеков зависимостей.
• Инструменты сборки и CI/CD быстрее считают совместимость версий.
• Оптимизация сделана без потери корректности и без усложнения API.

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

Подробнее о скорости и измерениях — в исходном разборе изменений.

https://iscinumpy.dev/post/packaging-faster/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Cowork стал доступен на Windows.

Пользователи Windows теперь могут использовать все возможности Cowork: прямой доступ к файлам, выполнение многошаговых задач, поддержку плагинов и всех коннекторов MCP. Ранее этот функционал был эксклюзивом для яблочной платформы.

Попутно Anthropic представила гибкую систему инструкций. Вы можете задать глобальные предпочтения: тон, формат ответов или описание своей роли, они будут применяться ко всем чатам.

Также появились инструкции уровня папок: они активируются автоматически, когда вы работаете в конкретной директории. Обновлять эти настройки можно прямо в ходе диалога, не копаясь в меню.

Инструмент все еще в стадии research preview и открыт для всех пользователей платных тарифов. Для доступа достаточно скачать свежую версию клиента с сайта.

@ai_machinelearning_big_data

#news #ai #ml
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🐳 Как запустить DeepSeek у себя на ПК через Python

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

Алгоритм простой:
1) ставим зависимости
2) качаем лёгкую модель DeepSeek
3) проверяем, что она отвечает
4) при необходимости включаем GPU или берём квантизованную версию

Так ты избежишь вылетов, перегрузки памяти и быстрее получишь рабочий результат.


установить зависимости
pip install transformers accelerate torch sentencepiece

# пример запуска DeepSeek из Python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model_name = "deepseek-ai/deepseek-coder-6.7b-base"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto" # если есть GPU — модель сама её использует
)

prompt = "Напиши на Python функцию, которая проверяет, простое ли число."

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)

outputs = model.generate(
**inputs,
max_new_tokens=160,
temperature=0.4
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))
👍71
This media is not supported in your browser
VIEW IN TELEGRAM
Идеальный старт для проекта Django: конфигурация окружения.

Сохрани себе идеальный шаблон virtual environment и основных настроек для каждого нового проекта Django. Это упростит процесс настройки окружения и позволит избежать распространенных ошибок.


# Создание виртуального окружения
python3 -m venv venv

# Активация виртуального окружения
source venv/bin/activate

# Установка основных зависимостей
pip install django djangorestframework psycopg2

# Создание файла requirements.txt
pip freeze > requirements.txt

# Инициализация нового проекта Django
django-admin startproject myproject
# Переход в директорию проекта
cd myproject

# Запуск сервера для проверки
python manage.py runserver
3🔥2👍1
🖥 Новый курс на Stepik - PostgreSQL для разработчиков: от основ к созданию API

Здесь на пальцах объясняют не только как писать SQL-запросы, а строить настоящие backend-сервисы с базой данных как у профи.

В этом курсе ты шаг за шагом создашь REST API на FastAPI + PostgreSQL:
от установки среды и первых таблиц - до масштабируемого приложения с безопасностью и CRUD-операциями.

🔹 На практике разберете:
• SQL-запросы, фильтры, агрегаты и подзапросы
• Связи между таблицами и нормализацию БД
• Взаимодействие Python и PostgreSQL
• Реализацию REST API и подключение базы
• Оптимизацию и разбор реальных задач с собеседований

После курса у вас будет свой работающий API-проект и реальные навыки работы с PostgreSQL в продакшене.

🎁 Торопись пока действует скидка в честь нвого года!

🚀 Прокачаю свои знания: https://stepik.org/course/255542/
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Шпаргалка по регулярным выражениям в Python

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


import re
# Пример текста

text = "Контакт: example@example.com, телефон: +7-123-456-7890"

# Регулярные выражения для извлечения email и телефона
email_pattern = r'\b[\w.-]+?@\w+?\.\w{2,4}\b'
phone_pattern = r'\+?\d{1,2}[- ]?\d{3}[- ]?\d{3}[- ]?\d{4}'

# Найти все совпадения
emails = re.findall(email_pattern, text)
phones = re.findall(phone_pattern, text)

# Результат
print("Найденные email:", emails)
print("Найденные телефоны:", phones)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103
⚠️ ИИ вызывает новый дефицит памяти

Дата-центры для AI потребляют столько памяти, что её начинает не хватать остальной электронике.

Что происходит на рынке:

- Контрактные цены на DRAM выросли на 75% всего за месяц
- Поставщики пересматривают цены ежедневно
- Основные объёмы памяти уходят в AI-серверы

Главная причина - переход на HBM (High Bandwidth Memory).

HBM - это многослойная память (8–12 слоёв DRAM), которая работает рядом с ускорителями Nvidia и AMD и обеспечивает экстремальную пропускную способность.

Масштаб потребления:

- Один ускоритель Nvidia Blackwell — до 192 GB HBM
- Система NVL72 - 13.4 TB памяти

Прогнозы:

- Спрос на HBM вырастет на 70% в 2026 году
- Уже сейчас HBM занимает 23% производства DRAM (против 19% в 2025)

Что это значит для рынка:

Обычной памяти становится меньше для:
- смартфонов
- ПК
- автомобилей
- игровых консолей

Выигрывают производители:
Samsung, SK Hynix, Micron - рост маржи.

Проигрывают продуктовые команды и компании,
которые не могут заранее выкупить поставки.

Главный вывод:

ИИ начинает влиять не только на софт и модели.
Он уже перераспределяет физические ресурсы всей индустрии электроники.
6🤬6👍4🥰1
🔴 Реальный собес на Python от ТехЛида с опытом работы в Авито и Яндексе в прямом эфире

17 февраля(уже завтра!) в 19:00 по мск приходи на прямой эфир с реальным собеседованием на Middle разработчика.

Почему точно нужно прийти:
📂 Савва Демиденко, ТехЛид с опытом в Яндексе и Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Савва будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Савве

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_py_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Шпаргалка по тестированию функций на Python с использованием unittest

Важно знать, что для эффективного тестирования кода можно использовать библиотеку unittest в Python. Это позволит вам автоматически проверять функциональность и находить ошибки. Вот пример простого теста для функции сложения:



import unittest
def add(a, b):
return a + b
class TestAddFunction(unittest.TestCase):
def test_add_positive(self):
self.assertEqual(add(1, 2), 3)
def test_add_negative(self):
self.assertEqual(add(-1, 1), 0)
def test_add_zero(self):
self.assertEqual(add(0, 0), 0)
if __name__ == '__main__':
unittest.main()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
🔥Яндекс Образование приглашает студентов бакалавриата и специалитета IT-направлений со всей России на бесплатный студкемп по аппаратной разработке умных устройств.

Основные моменты:

🗓 Даты: с 13 по 24 апреля
📍 Место: Москва
💡 Формат: интенсивное офлайн-обучение

В программе:
- Полный цикл разработки умного устройства: от прототипа до готового продукта.
- ML-интеграция в устройства с сохранением скорости и предсказуемости работы даже при ограниченных ресурсах.
- Современные подходы к исследованиям и разработке умных устройств.

Кто с вами будет работать?

- Специалисты Яндекса, которые создавали Алису и другие умные устройства компании.
- Преподаватели ФПМИ МФТИ, ФКН ВШЭ.
- Эксперты ШАД.

Участие бесплатное. Яндекс Образование покроет расходы на дорогу и проживание всем, кто пройдет отбор. Для участия нужно уметь работать с командной строкой и знать C++ или Java/Kotlin.

🔥 Набор открыт до 22 февраля, поэтому спешим регистрироваться по ссылке
4🥴2👎1🖕1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python: Ты неправильно читаешь файлы

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

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

Читать весь файл через .read() удобно, но на больших логах и выгрузках ты просто съедаешь память. Правильнее - идти построчно: это быстро, экономно и идеально для обработки потоков данных.

Буферизация тоже важна: можно явно задать buffering, чтобы ускорить чтение на медленных дисках или сетевых FS.


from pathlib import Path

path = Path("app.log")

with path.open("r", encoding="utf-8", buffering=1024 * 1024) as f:
for line in f:
line = line.strip()
if not line or line.startswith("#"):
continue
if "ERROR" in line:
print(line)
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
🖥 Большинство “парсеров” умирают через 2 дня.
Ты научишься делать те, которые живут в проде.

Это не про BeautifulSoup ради галочки.
Это про системы сбора данных, которые:

• не падают от мелких правок на сайте
• собирают данные в разы быстрее
• обновляют всё сами по расписанию
• обходят ограничения и баны
• выглядят как сервис, а не хаос из файлов

Ты начнёшь видеть сайты не как страницы, а как источники данных, к которым можно подключиться.

В итоге ты сможешь:

• забирать данные для своих проектов
• автоматизировать чужую рутину
• делать инструменты для аналитики
• брать коммерческие заказы на сбор данных

Это навык, который напрямую превращается в деньги.
Не “знаю Python”, а умею добывать данные из интернета профессионально.

🎁 48 часов скидка 50% на Stepik: https://stepik.org/a/269942/
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2👎1