Не запускай.
Подумай, как работает цикл и функции внутри него 👀
Разбор будет через два часа🔥
🐍Вопросы с собесов -> ProstoPython
Подумай, как работает цикл и функции внутри него 👀
Разбор будет через два часа🔥
🐍Вопросы с собесов -> ProstoPython
✅ Правильный ответ: [2, 2, 2]
🧠 Почему так:
🔷Функции не сохраняют значение i в момент создания
🔷Они запоминают ссылку на переменную
🔷После цикла i == 2
🔷Все функции возвращают текущее значение i, то есть 2
🐍Вопросы с собесов -> ProstoPython
🧠 Почему так:
🔷Функции не сохраняют значение i в момент создания
🔷Они запоминают ссылку на переменную
🔷После цикла i == 2
🔷Все функции возвращают текущее значение i, то есть 2
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
😱4🔥3
⏱️ Big O Breakdown — выпуск 3
Смотри внимательно 👀
A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ:C) O(n²)
🧠 Почему так:
Внутренний цикл выполняется:
0 раз
1 раз
2 раза
3 раза
...
(n-1) раз
В сумме это:
Константы отбрасываем —> остаётся O(n²)
🐍Вопросы с собесов -> ProstoPython
Смотри внимательно 👀
def example(nums):
n = len(nums)
for i in range(n):
for j in range(i):
print(i, j)
❓ Какая сложность?A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ:
🧠 Почему так:
Внутренний цикл выполняется:
0 раз
1 раз
2 раза
3 раза
...
(n-1) раз
В сумме это:
0 + 1 + 2 + ... + (n-1)
А это ≈ n² / 2Константы отбрасываем —> остаётся O(n²)
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
🔥4
🧰 Code Cleanup — выпуск 24
Тема: не пиши лишний флаг
Иногда код усложняют переменной, которая просто хранит состояние проверки.
❌ Плохо:
Работает.
Но переменная found здесь лишняя.
✅ Code Cleanup:
Или ещё чище:
🧠 Почему так лучше:
🔹 меньше лишнего состояния
🔹 код компактнее
🔹 читается быстрее
🐍Вопросы с собесов -> ProstoPython
Тема: не пиши лишний флаг
Иногда код усложняют переменной, которая просто хранит состояние проверки.
❌ Плохо:
found = False
for user in users:
if user.id == target_id:
found = True
break
if found:
print("User exists")
Работает.
Но переменная found здесь лишняя.
✅ Code Cleanup:
for user in users:
if user.id == target_id:
print("User exists")
break
Или ещё чище:
if any(user.id == target_id for user in users):
print("User exists")
🧠 Почему так лучше:
🔹 меньше лишнего состояния
🔹 код компактнее
🔹 читается быстрее
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
🔥5
⏱️ Big O Breakdown — выпуск 4
Посмотри на код 👀
❓ Какая сложность?
A) O(1)
B) O(log n)
C) O(n)
D) O(n²)
✅ Правильный ответ: C) O(n)
🧠 Почему так:
🔷Да, есть return внутри цикла.
🔷Да, иногда функция завершится быстро.
Но в худшем случае:
🔷нуля нет
🔷или он в самом конце
🔷Тогда цикл пройдёт по всем n элементам.
А Big O считается по худшему случаю
🐍Вопросы с собесов -> ProstoPython
Посмотри на код 👀
def contains_zero(nums):
for num in nums:
if num == 0:
return True
return False
❓ Какая сложность?
A) O(1)
B) O(log n)
C) O(n)
D) O(n²)
✅ Правильный ответ: C) O(n)
🧠 Почему так:
🔷Да, есть return внутри цикла.
🔷Да, иногда функция завершится быстро.
Но в худшем случае:
🔷нуля нет
🔷или он в самом конце
🔷Тогда цикл пройдёт по всем n элементам.
А Big O считается по худшему случаю
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
👍4
🔹 Любые позиционные аргументы (
Они сохраняются в
🔹 Обычно передают строку сообщения.
🔹 В кастомных исключениях можно определить свои параметры через
Итог: можно передать любые данные, по умолчанию они попадут в
*args).Они сохраняются в
exception.args (tuple).e = Exception("error", 400)
print(e.args) # ('error', 400)🔹 Обычно передают строку сообщения.
🔹 В кастомных исключениях можно определить свои параметры через
__init__.Итог: можно передать любые данные, по умолчанию они попадут в
.args.👍4
⏱️ Big O Breakdown — выпуск 5
Смотри внимательно 👀
❓ Какая сложность?
A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ:A) O(n)
🧠 Почему так:
🔷Внешний цикл увеличивает i на n
🔷Значит он выполняется всего один раз
🔷Внутренний цикл проходит n раз
Итого: n операций —> O(n)
🐍Вопросы с собесов -> ProstoPython
Смотри внимательно 👀
def example(nums):
n = len(nums)
i = 0
while i < n:
j = 0
while j < n:
print(i, j)
j += 1
i += n
❓ Какая сложность?
A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ:
🧠 Почему так:
🔷Внешний цикл увеличивает i на n
🔷Значит он выполняется всего один раз
🔷Внутренний цикл проходит n раз
Итого: n операций —> O(n)
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
🔥4❤1
Docker Volume
🔹 Volume — механизм хранения данных вне контейнера.
🔹 Зачем нужен
🔹 Данные сохраняются при удалении контейнера
🔹 Можно шарить данные между контейнерами
🔹 Подходит для БД, логов, загрузок
🐍Вопросы с собесов -> ProstoPython
🔹 Volume — механизм хранения данных вне контейнера.
🔹 Зачем нужен
🔹 Данные сохраняются при удалении контейнера
🔹 Можно шарить данные между контейнерами
🔹 Подходит для БД, логов, загрузок
🐍Вопросы с собесов -> ProstoPython
👍2
Десериализация — процесс преобразования данных из внешнего формата (JSON, XML, bytes) в объекты программы.
🔹 Где используется
🔹 HTTP-запросы (body —> объект)
🔹 Работа с файлами
🔹 Очереди сообщений
🔹 Кэш
🐍Вопросы с собесов -> ProstoPython
🔹 Где используется
🔹 HTTP-запросы (body —> объект)
🔹 Работа с файлами
🔹 Очереди сообщений
🔹 Кэш
🐍Вопросы с собесов -> ProstoPython
👍2
💬 Вопрос на собесе:
Что произойдёт, если изменить список во время итерирования по нему?
👶 Junior:
— Ну… наверное просто добавится элемент?
🧑💻 Middle:
— Если менять список во время обхода, можно пропустить элементы или получить странное поведение.
🧙♂️ Senior:
— Важно понимать механизм.
Python итерируется по индексам.
Если ты удаляешь элементы, индексы сдвигаются.
Цикл продолжает увеличивать индекс, и часть элементов может быть пропущена.
🐍Вопросы с собесов -> ProstoPython
Что произойдёт, если изменить список во время итерирования по нему?
👶 Junior:
— Ну… наверное просто добавится элемент?
🧑💻 Middle:
— Если менять список во время обхода, можно пропустить элементы или получить странное поведение.
🧙♂️ Senior:
— Важно понимать механизм.
Python итерируется по индексам.
Если ты удаляешь элементы, индексы сдвигаются.
Цикл продолжает увеличивать индекс, и часть элементов может быть пропущена.
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
👍2
DELETE
🔹 DML-операция
🔹 Удаляет строки с возможностью WHERE
🔹 Логирует удаление каждой строки
🔹 Можно откатить (в транзакции)
🔹 Триггеры срабатывают
TRUNCATE
🔹 DDL-операция
🔹 Удаляет все строки (без WHERE)
🔹 Быстро — очищает страницы таблицы
🔹 Обычно сбрасывает автоинкремент
🔹 В большинстве СУБД можно откатить (например, в PostgreSQL)
🔹 Триггеры не срабатывают (кроме специальных)
🐍Вопросы с собесов -> ProstoPython
🔹 DML-операция
🔹 Удаляет строки с возможностью WHERE
🔹 Логирует удаление каждой строки
🔹 Можно откатить (в транзакции)
🔹 Триггеры срабатывают
TRUNCATE
🔹 DDL-операция
🔹 Удаляет все строки (без WHERE)
🔹 Быстро — очищает страницы таблицы
🔹 Обычно сбрасывает автоинкремент
🔹 В большинстве СУБД можно откатить (например, в PostgreSQL)
🔹 Триггеры не срабатывают (кроме специальных)
🐍Вопросы с собесов -> ProstoPython
🔥4
Попробуйте ответить без запуска, что выведет код, разбор будет через 2 часа
🐍Вопросы с собесов -> ProstoPython
🐍Вопросы с собесов -> ProstoPython
👍3
✅ Правильный ответ: [1] [1, 2]
🧠 Почему так:
🔷 lst=[] создаётся один раз при объявлении функции
🔷 += для списка изменяет объект на месте
🔷 Первый вызов —> [1]
🔷 Второй вызов использует тот же список —> [1, 2]
🐍Вопросы с собесов -> ProstoPython
🧠 Почему так:
🔷 lst=[] создаётся один раз при объявлении функции
🔷 += для списка изменяет объект на месте
🔷 Первый вызов —> [1]
🔷 Второй вызов использует тот же список —> [1, 2]
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
🔥4❤2
⏱️ Big O Breakdown — выпуск 5
Смотри на код 👀
❓ Какая сложность?
A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ: C) O(n²)
🧠 Почему так:
🔷Внешний цикл проходит n раз
🔷Оператор in для списка работает за O(n)
🔷Внутри каждого прохода выполняется линейный поиск
Итого: n * n = n²
Даже если функция вернёт результат рано,
в худшем случае это всё равно O(n²).
🐍Вопросы с собесов -> ProstoPython
Смотри на код 👀
def has_duplicates(nums):
for num in nums:
if num in nums:
return True
return False
❓ Какая сложность?
A) O(n)
B) O(n log n)
C) O(n²)
D) O(1)
✅ Правильный ответ: C) O(n²)
🧠 Почему так:
🔷Внешний цикл проходит n раз
🔷Оператор in для списка работает за O(n)
🔷Внутри каждого прохода выполняется линейный поиск
Итого: n * n = n²
Даже если функция вернёт результат рано,
в худшем случае это всё равно O(n²).
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
👍4👎1🌚1
🔹 Через super()
🔹 super() возвращает прокси к родительскому классу
🔹 Корректно работает при множественном наследовании
🐍Вопросы с собесов -> ProstoPython
class Base:
def greet(self):
print("Hello")
class Child(Base):
def greet(self):
super().greet()
print("World")
🔹 super() возвращает прокси к родительскому классу
🔹 Корректно работает при множественном наследовании
🐍Вопросы с собесов -> ProstoPython
🔥4
💬 Вопрос на собесе:
В чём разница между shallow copy и deep copy?
👶 Junior:
— Ну… shallow это обычная копия, а deep типа полная? 🤔
🧑💻 Middle:
Shallow copy копирует только внешний объект.
Вложенные объекты остаются теми же самыми в памяти.
Deep copy копирует всё рекурсивно, включая вложенные структуры.
🧙♂️ Senior:
— Главное в ссылках и памяти.
🔹 Shallow copy создаёт новый контейнер, но элементы внутри него — те же объекты.
🔹 Если внутри есть изменяемые структуры, их изменение затронет обе копии.
🔹 Deep copy создаёт полностью независимую структуру.
Пример:
🐍Вопросы с собесов -> ProstoPython
В чём разница между shallow copy и deep copy?
👶 Junior:
— Ну… shallow это обычная копия, а deep типа полная? 🤔
🧑💻 Middle:
Shallow copy копирует только внешний объект.
Вложенные объекты остаются теми же самыми в памяти.
Deep copy копирует всё рекурсивно, включая вложенные структуры.
🧙♂️ Senior:
— Главное в ссылках и памяти.
🔹 Shallow copy создаёт новый контейнер, но элементы внутри него — те же объекты.
🔹 Если внутри есть изменяемые структуры, их изменение затронет обе копии.
🔹 Deep copy создаёт полностью независимую структуру.
Пример:
import copy
a = [[1, 2], [3, 4]]
b = copy.copy(a)
c = copy.deepcopy(a)
a[0].append(99)
print(b) # изменится
print(c) # останется прежним
🐍Вопросы с собесов -> ProstoPython
Telegram
Prosto Python | вопросы с собесов
🚀 Python-собесы без сюрпризов! Разбираем реальные вопросы, ошибки кандидатов и лайфхаки, которые помогают пройти интервью. Джун → мидл → сеньор — прокачивайся и разнеси следующий собес! 🔥
👍4
RESTful — API, спроектированное по принципам REST (архитектурный стиль для HTTP).
🔹 Базовые принципы
🔹 Ресурсы вместо действий
/users/1 — ресурс, а не getUser
🔹 HTTP-методы по назначению
GET — получить
POST — создать
PUT / PATCH — обновить
DELETE — удалить
🔹 Stateless — сервер не хранит состояние клиента
🔹 Корректные HTTP-статусы (200, 201, 404, 400)
🐍Вопросы с собесов -> ProstoPython
🔹 Базовые принципы
🔹 Ресурсы вместо действий
/users/1 — ресурс, а не getUser
🔹 HTTP-методы по назначению
GET — получить
POST — создать
PUT / PATCH — обновить
DELETE — удалить
🔹 Stateless — сервер не хранит состояние клиента
🔹 Корректные HTTP-статусы (200, 201, 404, 400)
🐍Вопросы с собесов -> ProstoPython
🔥4
Попробуйте ответить без запуска, что выведет код, разбор будет через 2 часа
🐍Вопросы с собесов -> ProstoPython
🐍Вопросы с собесов -> ProstoPython