Forwarded from Python/ django
🐍 Задача по Python: Замыкания и области видимости
Что выведет следующий код?
Варианты ответа:
A)
B)
C)
D) Ошибка выполнения
---
✅ Правильный ответ:A
Почему:
Функция создаёт замыкание. Переменная сохраняется между вызовами , потому что — замыкает и изменяет её с помощью . Это классический пример использования замыканий в Python.
@pythonl
Что выведет следующий код?
def outer():
x = 5
def inner():
nonlocal x
x += 1
return x
return inner
f = outer()
print(f())
print(f())
print(f())
Варианты ответа:
A)
7
8
B)
5
5
C)
6
6
D) Ошибка выполнения
---
✅ Правильный ответ:
Почему:
Функция
outer
x
f
inner
x
nonlocal
@pythonl
🧠 Python-хитрая задача + решение
🖍️ Условие:
У тебя есть список логов (user, login/logout).
Найди тех, кто зашел, но не вышел.
📜 Пример:
________
💻 Решение:
🛠Ответ:"carol"
#Python #Challenge #DevPuzzle
@python_job_interview
🖍️ Условие:
У тебя есть список логов (user, login/logout).
Найди тех, кто зашел, но не вышел.
📜 Пример:
logs = [
("alice", "login"),
("bob", "login"),
("alice", "logout"),
("dave", "login"),
("bob", "logout"),
("carol", "login"),
("dave", "logout")
]
________
💻 Решение:
from collections import defaultdict
def find_stuck_users(logs):
counter = defaultdict(int)
for user, action in logs:
if action == "login":
counter[user] += 1
elif action == "logout":
counter[user] -= 1
return sorted([user for user, count in counter.items() if count > 0])
🛠Ответ:
#Python #Challenge #DevPuzzle
@python_job_interview
Что выведет этот код при запуске на Python 3.10+ (например, 3.11)?
📌 Подсказка:Подумайте о порядке проверок, о том, какие атрибуты попадают в others, и об использовании __match_args__.
Ответ:
Automatic mode
Mode manual, other keys: ['threshold', 'debug']
Low threshold 0
Краткое пояснение:
Для первого объекта (mode="auto", threshold=10) срабатывает первый case Config(mode="auto") → Automatic mode.
Для второго (mode="manual", threshold=5, debug=True) первый не совпадает, второй с threshold<5 не проходит (5 < 5 → False), зато третий case Config(mode=mode, **others) — биндинг mode='manual', остальные ключи (threshold и debug) попадают в others → Mode manual, other keys: ['threshold', 'debug'].
Для третьего (threshold=0) первый и третий не подходят (нет mode), а второй — case Config(threshold=threshold) if threshold<5 — срабатывает (0<5) → Low threshold 0.
📌 Подсказка:
Ответ:
Automatic mode
Mode manual, other keys: ['threshold', 'debug']
Low threshold 0
Краткое пояснение:
Для первого объекта (mode="auto", threshold=10) срабатывает первый case Config(mode="auto") → Automatic mode.
Для второго (mode="manual", threshold=5, debug=True) первый не совпадает, второй с threshold<5 не проходит (5 < 5 → False), зато третий case Config(mode=mode, **others) — биндинг mode='manual', остальные ключи (threshold и debug) попадают в others → Mode manual, other keys: ['threshold', 'debug'].
Для третьего (threshold=0) первый и третий не подходят (нет mode), а второй — case Config(threshold=threshold) if threshold<5 — срабатывает (0<5) → Low threshold 0.
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
Нерйросети www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/DevopsDocker
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Python: www.tg-me.com/pythonl
Linux: www.tg-me.com/linuxacademiya
Собеседования DS: www.tg-me.com/machinelearning_interview
Нерйросети www.tg-me.com/ai_machinelearning_big_data
C++ www.tg-me.com/cpluspluc
Docker: www.tg-me.com/DevopsDocker
Хакинг: www.tg-me.com/linuxkalii
Devops: www.tg-me.com/DevOPSitsec
Data Science: www.tg-me.com/data_analysis_ml
Javascript: www.tg-me.com/javascriptv
C#: www.tg-me.com/csharp_ci
Java: www.tg-me.com/javatg
Базы данных: www.tg-me.com/sqlhub
Python собеседования: www.tg-me.com/python_job_interview
Мобильная разработка: www.tg-me.com/mobdevelop
Golang: www.tg-me.com/Golang_google
React: www.tg-me.com/react_tg
Rust: www.tg-me.com/rust_code
ИИ: www.tg-me.com/vistehno
PHP: www.tg-me.com/phpshka
Android: www.tg-me.com/android_its
Frontend: www.tg-me.com/front
Big Data: www.tg-me.com/bigdatai
МАТЕМАТИКА: www.tg-me.com/data_math
Kubernets: www.tg-me.com/kubernetc
Разработка игр: https://www.tg-me.com/gamedev
Haskell: www.tg-me.com/haskell_tg
Физика: www.tg-me.com/fizmat
💼 Папка с вакансиями: www.tg-me.com/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: www.tg-me.com/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: www.tg-me.com/addlist/eEPya-HF6mkxMGIy
Папка ML: https://www.tg-me.com/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://www.tg-me.com/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: www.tg-me.com/memes_prog
🇬🇧Английский: www.tg-me.com/english_forprogrammers
🧠ИИ: www.tg-me.com/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://www.tg-me.com/addlist/BkskQciUW_FhNjEy
Каким будет вывод этого кода?
Anonymous Quiz
31%
True
29%
False
11%
Syntax error для метода issuperset()
19%
Ошибка, метода issuperset() не существует
10%
Посмотреть ответ
Каким будет вывод этого кода?
Anonymous Quiz
43%
{'apple', 'peach', 'watermelon', 'melon', 'pomelo'}
26%
{'apple', 'peach', 'watermelon', 'melon', 'pomelo', 'watermelon'}
24%
Ошибка: оператор + не используется со множествами
3%
Ошибка: в обоих множествах присутствует "watermelon" (дубликат значения)
4%
Узнать ответ
Каким будет вывод этого кода?
print('abcdefcdghcd'.split('cd', 2))
print('abcdefcdghcd'.split('cd', 2))
Anonymous Quiz
16%
['ab', 'efcdghcd']
13%
['abcdef', 'ghcd']
39%
['ab', 'ef', 'ghcd']
25%
Ничто из перечисленного
7%
Узнать ответ
🐍 Хитрая задача на Python с подвохом
📌 Задача:
Ты пишешь функцию
Реализуй эту функцию.
🎯 Подвох:
- Решение работает без глобальных переменных
- Используется поведение изменяемых аргументов по умолчанию
- Это поведение часто становится причиной багов у новичков — но здесь оно работает на нас
---
✅ Ожидаемый результат:
🧠 Объяснение подвоха:
- Аргумент вычисляется один раз, при первом вызове функции
- Все последующие вызовы используют один и тот же список
- Обычно это считается "ловушкой", но в задачах на замыкание состояния — это полезный трюк
⚠️ Не путай: если внутри функции ты напишешь , то всё сломается — потому что создастся новый список каждый раз
📌 Задача:
Ты пишешь функцию
track
, которая возвращает список всех значений, которые в неё передавали. Пример поведения:
print(track(1)) # [1]
print(track(2)) # [1, 2]
print(track(3)) # [1, 2, 3]
Реализуй эту функцию.
🎯 Подвох:
- Решение работает без глобальных переменных
- Используется поведение изменяемых аргументов по умолчанию
- Это поведение часто становится причиной багов у новичков — но здесь оно работает на нас
---
✅ Ожидаемый результат:
def track(value, cache=[]):
cache.append(value)
return cache
# Проверка:
print(track(1)) # [1]
print(track(2)) # [1, 2]
print(track(3)) # [1, 2, 3]
🧠 Объяснение подвоха:
- Аргумент
cache=[]
- Все последующие вызовы используют один и тот же список
- Обычно это считается "ловушкой", но в задачах на замыкание состояния — это полезный трюк
⚠️ Не путай: если внутри функции ты напишешь
cache = []
Каким будет вывод этого кода?
Anonymous Quiz
27%
integers:...1234...1234 ...001234
13%
integers…1234…1234…123400
11%
integers:… 1234…1234…001234
23%
integers:…1234…1234…001234
26%
Посмотреть ответ
Какой из следующих методов НЕ является методом перегрузки операций в Python?
Anonymous Quiz
18%
__add__
10%
__sub__
18%
__mul__
55%
__combine__
Что выведет код?
class B:
def __init__(self) :
print ('В', end='')
super().__init__()
class C:
def __init__(self):
print('C', end='')
super().__init__ ()
class D(B, C):
def __init__(self):
print('D', end='')
B.__init__(self)
C.__init__(self)
X = D()
Выберите правильный вариант
Anonymous Quiz
5%
DB
4%
DC
71%
DBC
4%
DBBC
4%
DBCC
1%
DCBC
11%
Посмотреть результаты