Информатика · ҰБТ сұрағы №14865

Python кодының нәтижесін анықтаңыз: i = 7 fs = [lambda x, k=i: x * k + i for i in range(3)] print([f(10) for f in fs], i)

Дұрыс жауабы мен түсіндірмесі
Жауабы: [2, 12, 22] 7

k=i әдепкі мәні әр итерацияда 0, 1, 2 болып бекиді; дене ішіндегі i — генератордағы соңғы мән 2 (late binding). Генератор айнымалысы сырттағы i=7-ге әсер етпейді.

«Python программалау тілінде алгоритмдерді программалау» тақырыбынан тағы