Вопросы и задачки для подготовки к собеседованиям и прокачки навыков
Разместить рекламу: @tproger_sales_bot
Правила общения: https://tprg.ru/rules
Другие каналы: @tproger_channels
Другие наши проекты: https://tprg.ru/media
Post #3534
1.37K
PY @quiz_python
Showing posts older than #3535 · Back to latest

lambda и оператор def, определяемый внутри функции, вкладывается в цикл, а вложенная функция ссылается на переменную из объемлющей области видимости, которая изменяется этим циклом, то все функции, генерируемые внутри цикла, будут иметь одно и то же значение — значение ссылаемой переменной на последней итерации цикла.for, будет запоминать последнее значение i, то есть 5:def makeActions():
acts = []
for i in range(5):
acts.append(lambda x: i ** x) # i в таких условиях всегда равен 4
return acts
acts.append(lambda x, i=i: i ** x)

f2(x)
def выполняется перед фактическим вызовом первой функции. Код внутри def никогда не выполняется до тех пор, пока функция не будет действительно вызвана.
multiply(), которая определяет некоторую область видимости и в которой определены некоторые переменные и параметры - лексическое окружениеinner(), которая использует переменные и параметры внешней функции.inner() запоминает окружение, в котором была создана, в частности, значение параметра n. Кроме того, сама принимает параметр и возвращает произведение параметров n и m.
def, не вступают в конфликт с именами, находящимися за ее пределами, даже если и там и там присутствуют одинаковые имена. Имя X, которому присвоено значение за пределами данной инструкции, полностью отлично от имени X, которому присвоено значение внутри инструкции def.
имя=значение и распаковывать произвольно много аргументов для отправки посредством снабжения аргументов звездочками — *args (позиционные аргументы) и **kwargs ключевые аргументы — Keyword arguments.def print_numbers(*args):
for number in args:
print(number)
# Вызов функции с произвольным количеством аргументов
print_numbers(1, 2, 3, 4, 5)
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# Вызов функции с произвольным количеством ключевых аргументов
print_info(name="Alice", age=30, city="New York")