en
Feedback
Python | Вопросы собесов

Python | Вопросы собесов

Open in Telegram

📈 Analytical overview of Telegram channel Python | Вопросы собесов

Channel Python | Вопросы собесов (@python_easy_ru) in the Russian language segment is an active participant. Currently, the community unites 13 108 subscribers, ranking 9 738 in the Technologies & Applications category and 50 761 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 13 108 subscribers.

According to the latest data from 07 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -52 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.21%. Within the first 24 hours after publication, content typically collects 5.90% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 814 views. Within the first day, a publication typically gains 773 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as ставь, модуль, строка, docker, alice.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

Thanks to the high frequency of updates (latest data received on 08 June, 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.

13 108
Subscribers
-324 hours
-147 days
-5230 days
Posts Archive
🤔 Как выбрать данные из двух таблиц без метода join()? В SQL можно объединять данные из двух таблиц без использования JOIN, используя альтернативные методы. 🚩Использование подзапросов (`SELECT` внутри `SELECT`) Подзапрос (subquery) позволяет выбрать данные из одной таблицы, используя данные из другой. Допустим, у нас есть две таблицы: employees (id, name, department_id) departments (id, name)
SELECT name, 
       (SELECT name FROM departments WHERE id = employees.department_id) AS department_name
FROM employees;
🚩Использование `IN` или `EXISTS` Можно фильтровать данные из одной таблицы, проверяя наличие значений в другой.
SELECT name 
FROM employees 
WHERE department_id IN (SELECT id FROM departments);
🚩Объединение данных через `UNION` Если таблицы имеют схожие колонки, можно объединить их с UNION.
SELECT id, name, email FROM users_old
UNION
SELECT id, name, email FROM users_new;
🚩Использование `CROSS JOIN` через `WHERE` Хотя CROSS JOIN делает декартово произведение, его можно фильтровать WHERE, имитируя INNER JOIN.
SELECT e.name, d.name AS department
FROM employees e, departments d
WHERE e.department_id = d.id;
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое замыкание (closure)? Замыкание — это функция, которая "помнит" значения переменных из внешней области видимости, даже после выхода из неё. Это позволяет сохранять состояние между вызовами. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие есть высокоуровневые языки программирования? Предоставляют более высокую степень абстракции от аппаратного обеспечения компьютера, чем низкоуровневые языки. Они ориентированы на удобство программирования, упрощение разработки, читаемость и поддержку кода. Эти языки скрывают детали работы с памятью и процессором, позволяя программистам сосредоточиться на логике приложения. 🚩Основные высокоуровневые языки программирования: 🟠Python Веб-разработка, анализ данных, научные исследования, искусственный интеллект, автоматизация.
def greet(name):
    return f"Hello, {name}!"

print(greet("World"))     
🟠Java Разработка корпоративного ПО, веб-приложений, мобильных приложений (Android), больших распределенных систем.
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
   }
}
     
🟠C# Разработка настольных приложений, веб-приложений, игр (с использованием Unity), облачных сервисов.
using System;

class Program {
    static void Main() {
        Console.WriteLine("Hello, World!");
    }
}     
🟠JavaScript Веб-разработка, создание интерактивных пользовательских интерфейсов, серверные приложения, мобильные приложения (с использованием фреймворков, таких как React Native).
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet("World"));     
🟠Ruby Веб-разработка, скрипты автоматизации, создание прототипов.
def greet(name)
  "Hello, #{name}!"
end

puts greet("World")     
🟠PHP Веб-разработка, серверные приложения, управление контентом.
<?php
function greet($name) {
    return "Hello, $name!";
}

echo greet("World");
?>     
🟠Swift Разработка мобильных и настольных приложений для экосистемы Apple.
func greet(name: String) -> String {
    return "Hello, \(name)!"
}

print(greet(name: "World"))     
🟠Kotlin Разработка Android-приложений, серверных приложений, веб-приложений.
fun greet(name: String): String {
    return "Hello, $name!"
}

fun main() {
    println(greet("World"))
}     
🟠Go (Golang) Разработка серверных приложений, облачных сервисов, микросервисов.
package main
import "fmt"

func main() {
   fmt.Println("Hello, World!")
}     
🟠Rust Системное программирование, разработка высокопроизводительных приложений, безопасное многопоточность.
fn main() {
    println!("Hello, World!");
}
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что такое подгенератор? Подгенератор — это генератор, из которого делается вложенный вызов через yield from. Это позволяет делегировать генерацию значений другому генератору. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое объект первого класса? Объект первого класса (или сущность первого класса) — это концепция из программирования, которая означает, что объект обладает всеми следующими свойствами: 🟠Хранение в переменной или структуре данных объект можно присвоить переменной или сохранить в структуре данных (например, списке, словаре). 🟠Передача в функцию в качестве аргумента объект можно передавать как параметр функции. 🟠Возврат из функции как результата функция может возвращать объект. 🟠Динамическое создание объект можно создавать во время выполнения программы (не только на этапе компиляции). 🚩Почему это важно? Объекты первого класса делают язык более гибким и мощным. Например: Функции можно передавать как аргументы для реализации более сложных вычислений. Можно хранить функции в структурах данных, что позволяет создавать таблицы вызовов функций или карты действий. Возможность возвращать функции из других функций упрощает реализацию таких концепций, как замыкания и фабрики функций. 🚩Пример на Python Присваивание функции переменной
def say_hello():
    return "Hello!"

# Функция присваивается переменной
greet = say_hello
print(greet())  # Вывод: Hello!
Передача функции как аргумента
def apply_function(func, value):
    return func(value)

def square(x):
    return x * x

result = apply_function(square, 5)
print(result)  # Вывод: 25
Возврат функции из функции
def multiplier(n):
    def multiply(x):
        return x * n
    return multiply

double = multiplier(2)
print(double(10))  # Вывод: 20
Ставь 👍 и забирай 📚 Базу знаний

🤔 Для чего используют Redis в проектах? Redis используется как высокопроизводительное in-memory хранилище. 1. Подходит для кэширования данных, управления сессиями, очередей сообщений. 2. Обеспечивает поддержку структур данных, таких как списки, множества, хэши, что упрощает реализацию сложных операций. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤖 Топ 4 ИИ-сервиса, которые освободят тебе 30 часов в неделю. Бесплатно + без регистрации Попробовать можно тут 👉 t.me/vist
🤖 Топ 4 ИИ-сервиса, которые освободят тебе 30 часов в неделю. Бесплатно + без регистрации Попробовать можно тут 👉 t.me/vistehno

🤔 Назови основные команды docker? Docker — это инструмент для создания, развертывания и управления контейнерами. Основные команды позволяют управлять образами, контейнерами, сетями и томами. 🚩Работа с образами (`images`) Образы — это "шаблоны" для создания контейнеров. Пример: скачиваем Python-образ
docker pull python:3.11
🚩Работа с контейнерами (`containers`) Контейнер — это запущенный процесс на основе образа. Пример: запустить контейнер с Ubuntu и войти в него
docker run -it ubuntu bash
Пример: остановить и удалить контейнер
docker stop my_app
docker rm my_app
🚩Работа с томами (`volumes`) Том (volume) — это способ хранения данных, которые не пропадут при перезапуске контейнера. Пример: подключить том к контейнеру
docker run -v my_data:/app/data ubuntu
🚩Работа с сетями (`networks`) Сети в Docker позволяют контейнерам взаимодействовать друг с другом. Пример: запустить два контейнера в одной сети
docker network create my_network
docker run -d --network my_network --name app1 ubuntu
docker run -d --network my_network --name app2 ubuntu
🚩5. Docker Compose (`docker-compose.yml`) Docker Compose позволяет управлять несколькими контейнерами с помощью docker-compose.yml. Пример docker-compose.yml
version: "3"
services:
  app:
    image: python:3.11
    volumes:
      - my_data:/app/data
    networks:
      - my_network

volumes:
  my_data:

networks:
  my_network:
Запуск
docker compose up -d
Ставь 👍 и забирай 📚 Базу знаний

🤔 Что будет, если ошибку не обработает блок except? Исключение пробросится выше по стеку вызовов. Если его не перехватит ни один уровень, программа завершится с трейсбеком. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое параллелизм? Параллелизм — это способ выполнения программ, при котором несколько задач выполняются одновременно (реально параллельно). Он используется для ускорения работы программ, особенно на многоядерных процессорах. 🚩1. Как работает параллелизм? Пример без параллелизма (последовательное выполнение) Допустим, у нас есть две задачи: 1. Скачать файл (3 секунды). 2. Обработать данные (2 секунды). Если выполнять их последовательно
[1] Скачать файл... (3 сек)
[2] Обработать файл... (2 сек)
[Готово за 5 секунд]
Пример с параллелизмом (оба процесса выполняются одновременно) Если у нас 2 ядра процессора, можно выполнить задачи одновременно.
[1] Скачать файл... (3 сек) ──► Готово!
[2] Обработать файл... (2 сек) ──► Готово!
[Готово за 3 секунды]  ✅ Быстрее!
🚩Как реализовать параллелизм в Python? 🟠`multiprocessing` – настоящий параллелизм В Python multiprocessing создаёт отдельные процессы, которые работают на разных ядрах.
import multiprocessing
import time

def task(name):
    print(f"Начал {name}")
    time.sleep(2)
    print(f"Закончил {name}")

if __name__ == "__main__":
    p1 = multiprocessing.Process(target=task, args=("Процесс 1",))
    p2 = multiprocessing.Process(target=task, args=("Процесс 2",))

    p1.start()
    p2.start()

    p1.join()
    p2.join()
    print("Все процессы завершены")
🟠`threading` – многопоточность (НЕ параллельность в Python!) Python не может выполнять потоки параллельно из-за GIL, но threading всё же полезен для задач ввода-вывода.
import threading
import time

def task(name):
    print(f"Начал {name}")
    time.sleep(2)
    print(f"Закончил {name}")

t1 = threading.Thread(target=task, args=("Поток 1",))
t2 = threading.Thread(target=task, args=("Поток 2",))

t1.start()
t2.start()

t1.join()
t2.join()
print("Все потоки завершены")
🟠`asyncio` – асинхронность (НЕ параллелизм, но эффективное переключение задач) Асинхронность позволяет не ждать выполнения операции, а переключаться на другие задачи.
import asyncio

async def task(name):
    print(f"Начал {name}")
    await asyncio.sleep(2)  # НЕ блокирует другие задачи
    print(f"Закончил {name}")

async def main():
    await asyncio.gather(task("Задача 1"), task("Задача 2"))

asyncio.run(main())
🚩Виды параллелизма 🟠Параллелизм на уровне инструкций (ILP, CPU-level) Процессор выполняет несколько инструкций одновременно. Например, в современных процессорах есть конвейер (pipeline), который выполняет несколько операций параллельно. 🟠Параллелизм на уровне данных (Data Parallelism) Одна операция применяется к разным данным одновременно (используется в нейросетях, GPU).
import numpy as np

arr = np.array([1, 2, 3, 4])
result = arr * 2  # Все элементы умножаются одновременно (векторизация)
print(result)  # [2 4 6 8]
Ставь 👍 и забирай 📚 Базу знаний

🤔 Чем отличается while от for? - while — цикл, который выполняется пока условие истинно. Используется, когда неизвестно количество итераций. - for — итерационный цикл, проходящий по элементам коллекции или диапазону. Обычно применяется, когда известны шаги или есть итерируемый объект. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🔍Тестовое собеседование на Middle Python-разработчика в четверг 22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое
🔍Тестовое собеседование на Middle Python-разработчика в четверг 22 мая(в четверг) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика. Собес проведет Вадим Пуштаев, ex. head of backend в 💙, автор канала @pythonetc, архитектор в европейской компании Как это будет: 📂 Вадим будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Вадим будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Вадиму Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxEGvHr

🤔 Что такое моржовый оператор? Моржовый оператор (:=) – это новый оператор, появившийся в Python 3.8, который позволяет присваивать значение переменной прямо внутри выражения. 🚩Как он работает? Обычно мы записываем код так:
value = len(my_list)  # Сначала присваиваем
if value > 10:  # Потом используем
    print("Список большой")
С := можно совместить оба действия
if (value := len(my_list)) > 10:
    print("Список большой")
🚩Где использовать? В циклах (избегаем лишних вычислений). Вместо:
data = input("Введите строку: ")
while data != "exit":
    print("Вы ввели:", data)
    data = input("Введите строку: ")
С := можно записать короче:
while (data := input("Введите строку: ")) != "exit":
    print("Вы ввели:", data)
В if и while (проверяем и присваиваем одновременно) Без :=
text = input("Введите слово: ")
if len(text) > 5:
    print(f"Слово длинное ({len(text)} символов)")
С :=:
if (length := len(text)) > 5:
    print(f"Слово длинное ({length} символов)")
В списковых включениях (list comprehensions) Без :=:
numbers = [random.randint(1, 100) for _ in range(10)]
filtered = [num for num in numbers if num % 2 == 0]
С :=:
filtered = [num for _ in range(10) if (num := random.randint(1, 100)) % 2 == 0]
🚩Когда не стоит использовать `:=`? Если код становится сложнее для чтения
if (a := func()) and (b := another_func(a)) > 10:
    ...
Ставь 👍 и забирай 📚 Базу знаний

Есть новости! Инженеры из QA.GURU проведут отдельный вебинар для продвинутых автоматизаторов на Python. Тема встречи: «Как стать Senior QA и выйти за рамки автотестов» — ведёт основатель проекта Стас Васенков. Будет много практики и лайфкодинг. Стас покажет, как опытному автоматизатору расти дальше, разбираться в архитектуре и уверенно проходить собеседования в сильные команды. Уже в этот четверг в 20:00 по МСК. В программе:Что отличает Senior от Middle в 2025 году; — Почему одного написания тестов уже недостаточно; — Какие технические скиллы ждут на собеседованиях в топ-компаниях. И практика: — Перепишем автотесты с reqres.in и поднимем свой микросервис на FastAPI; — Освоим Kafka, gRPC, GraphQL, REST, SOAP, Postgres — через живой код; — Разберемся, как выйти за пределы фреймворка и мыслить как инженер. Спикер — Станислав Васенков: 10+ лет в автоматизации, ex-Head of QA в Госуслугах, автор allure-notifications, организатор QA-конференций, основатель QA.GURU. 🔗 Ссылка на регистрацию — места ещё есть.

🤔 Что такое кэш? Кэш — это временное хранилище данных, предназначенное для ускорения доступа к ним. Кэш может быть: - Браузерным (сохраняются изображения, стили и скрипты). - DNS-кэшем (сохраняются IP-адреса доменов). - Серверным или CDN-кэшем (снижение нагрузки на сервер). - В оперативной памяти — например, у приложений и баз данных. Цель кэша — уменьшить задержку и количество повторных обращений. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🎁 РАЗЫГРЫВАЕМ MacBook Air! Майские праздники продалжаются! Разыграем новенький 13-дюймовый MacBook Air ! Условия участия мак
🎁 РАЗЫГРЫВАЕМ MacBook Air! Майские праздники продалжаются! Разыграем новенький 13-дюймовый MacBook Air ! Условия участия максимально простые: 🔸Подписаться на телеграм-канал Machine Learning 🔸Подписаться на телеграм-канал Vistehno 🔸Нажать кнопку "Участвовать" ниже. ВСЁ! Вы участник! Итоги подведём 14 июня. Всем удачи! ⚠️ Если бот подвис — не беспокойтесь, вас все равно зарегистрирует, просто выполните условия и нажмите «Участвовать».

🤔 Cловари {dict}? Словарь (dict) — это структура данных, которая хранит пары "ключ → значение". 🟠Создание словаря Через {} (фигурные скобки)
my_dict = {"name": "Alice", "age": 25, "city": "New York"}
Изменение значения
my_dict["age"] = 26  # Меняем возраст
del — удаление по ключу
del my_dict["city"]
Перебор ключей (for key in dict)
for key in my_dict:
    print(key, my_dict[key])
Проверка наличия ключа
if "name" in my_dict:
    print("Ключ существует!")
🟠Генерация словарей (Dictionary Comprehension) Создадим словарь квадратов чисел
squares = {x: x**2 for x in range(1, 6)}
print(squares)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
🟠Ключи должны быть хешируемыми (неизменяемыми) Нельзя использовать list как ключ!
my_dict[[1, 2, 3]] = "Ошибка"  # TypeError: unhashable type: 'list'
Можно использовать tuple, int, str, frozenset
my_dict[(1, 2, 3)] = "OK"
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какой метод используется при инициализации класса? Метод init используется для инициализации экземпляра класса. Он автоматически вызывается при создании объекта и позволяет задавать начальные значения атрибутов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Какие объекты можно положить в множество? В Python множество (set) — это неупорядоченная коллекция уникальных элементов, которая работает на основе хеш-таблицы. Это значит, что только хешируемые (immutable) объекты могут быть добавлены в set. 🚩Можно добавить в `set`: Числа (int, float, complex)
   s = {1, 2.5, 3+4j}
Строки (str)
   s = {"apple", "banana", "cherry"}
Кортежи (tuple), если они тоже содержат только неизменяемые объекты
   s = {(1, 2), ("a", "b")}
Булевые значения (bool)** (но True считается 1, а False0)
   s = {True, False, 1, 0}
   print(s)  # {False, True} (0 и 1 не добавятся повторно)
🚩Нельзя добавить в `set` Изменяемые объекты (list, set, dict)
   s = { [1, 2, 3] }  #  Ошибка: TypeError: unhashable type: 'list'
   s = { {"key": "value"} }  #  Ошибка: TypeError: unhashable type: 'dict'
Кортежи с изменяемыми элементами
   s = { (1, [2, 3]) }  #  Ошибка: TypeError
Ставь 👍 и забирай 📚 Базу знаний

🤔 Как сделать package? Пакет в Python — это папка, содержащая файл __init__.py, который указывает, что она является модулем. Внутри пакета могут находиться другие модули или подпакеты. Это позволяет удобно структурировать код по функциональным блокам и импортировать нужные части. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний