🧠 Python-задача на внимательность и знание подводных камней
Что выведет этот код?
def make_funcs(): funcs = [] for i in range(3): def wrapper(x=i): return lambda: x funcs.append(wrapper()) return funcs
a, b, c = make_funcs() print(a(), b(), c())
❓ Варианты ответа:
A)0 1 2 В) 2 2 2 C)0 0 0 D)Ошибка на этапе выполнения
✅ Ответ: 0 1 2
📘 Объяснение: 🔹 Цикл for i in range(3) проходит по значениям 0, 1, 2.
🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x.
🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x.
🔹 В итоге:
a() → 0
b() → 1
c() → 2
Если бы мы не использовали x=i по умолчанию, а писали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3.
🧠 Python-задача на внимательность и знание подводных камней
Что выведет этот код?
def make_funcs(): funcs = [] for i in range(3): def wrapper(x=i): return lambda: x funcs.append(wrapper()) return funcs
a, b, c = make_funcs() print(a(), b(), c())
❓ Варианты ответа:
A)0 1 2 В) 2 2 2 C)0 0 0 D)Ошибка на этапе выполнения
✅ Ответ: 0 1 2
📘 Объяснение: 🔹 Цикл for i in range(3) проходит по значениям 0, 1, 2.
🔹 В каждой итерации вызывается wrapper(x=i) — это копирует текущее значение i в локальную переменную x.
🔹 Затем возвращается lambda: x, которая запоминает это конкретное значение x.
🔹 В итоге:
a() → 0
b() → 1
c() → 2
Если бы мы не использовали x=i по умолчанию, а писали просто lambda: i, все функции замкнули бы одну и ту же переменную i, и на момент вызова она бы уже была равна 3.
Telegram is a cloud-based instant messaging service that has been making rounds as a popular option for those who wish to keep their messages secure. Telegram boasts a collection of different features, but it’s best known for its ability to secure messages and media by encrypting them during transit; this prevents third-parties from snooping on messages easily. Let’s take a look at what Telegram can do and why you might want to use it.
Newly uncovered hack campaign in Telegram
The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.