Модуль 7.10 Замыкания в Python. Вложенные функции.
Используя замыкания функций, определите вложенную функцию, которая бы увеличивала значение переданного параметра на 5 и возвращала бы вычисленный результат. При этом внешняя функция должна иметь следующую сигнатуру:
def counter_add(): …
Вызовите функцию counter_add и результат ее работы присвойте переменной с именем cnt. Вызовите внутреннюю функцию через переменную cnt со значением k, введенным с клавиатуры:
k = int(input())
Выведите результат на экран.
def counter_add(): # Основная функция с пустым полем куда вскоре пойдет значение К def inner(k: int): # Вложенная функция, которая вскоре возьмет значение К из основной функции return k+5 # Внутри вложенной функции проводим операцию над К, которое будет передано основной return inner # Обязательное условие каждого замыкания - в конце вернуть название вложенной функции cnt = counter_add() # Переменной даем право вызывать основную функцию k = int(input()) # Получаем наше тестовое число print(cnt(k)) # При вызове аргумент К попадает в основную функцию, из которой оно попадает во вложенную, в которой число увеличивается на 5 и из вложенной функции возвращается во внешнюю, которое мы выводим в этой строке
Используя замыкания функций, объявите внутреннюю функцию, которая увеличивает значение своего аргумента на некоторую величину n — параметр внешней функции с сигнатурой:
def counter_add(n): …
Вызовите внешнюю функцию counter_add со значением аргумента 2 и результат присвойте переменной cnt. Вызовите внутреннюю функцию через переменную cnt со значением k, введенным с клавиатуры:
k = int(input())
Выведите результат на экран.
def counter_add(k): # внешняя функция, которая принимает число для увеличения def plusik(n): # вложенная функция, которая принимает число, на которое нужно увеличить число, переданное во внешнюю функцию nonlocal k # даем право вложенной функции на изменение переданного числа(во внешнюю функцию) return k + n # возвращаем увеличенное число, во внешнюю функцию return plusik # возвращаем увеличенное число, из внешней функции k = int(input()) # получаем тестовое число cnt = counter_add(2) # переменной даем прааво на вызов функции с аргументом 2 print(cnt(k)) # выводим результат вызова функции, которая увеличивает 2 на введенное число
Используя замыкания функций, объявите внутреннюю функцию, которая заключает в тег h1 строку s (s — строка, параметр внутренней функции). Далее, на вход программы поступает строка и ее нужно поместить в тег h1 с помощью реализованного замыкания. Результат выведите на экран.
P. S. Пример добавления тега h1 к строке «Python»: <h1>Python</h1>
def teg(): # внешняя функция def teg_nem(s): # внутренняя функция, которая принимает строку return f'<h1>{s}</h1>' # во внешнюю возвращаем строку, заключенную в тег <h1> return teg_nem # из внешней возвращаем получившуюся строку spor = teg() # даем право переменной на вызов функции s = input() # получаем тестовую ситроку print(spor(s)) # выводим получившуюся строку
Используя замыкания функций, объявите внутреннюю функцию, которая заключает строку s (s — строка, параметр внутренней функции) в произвольный тег, содержащийся в переменной tag — параметре внешней функции.
Далее, на вход программы поступают две строки: первая с тегом, вторая с некоторым содержимым. Вторую строку нужно поместить в тег из первой строки с помощью реализованного замыкания. Результат выведите на экран.
P. S. Пример добавления тега h1 к строке «Python»: <h1>Python</h1>
def teg(k): # внешняя функция def teg_nem(s): # внутренняя функция, которая принимает строку nonlocal k # даем право на использование заданного аргумента во внутренней функции return f'<{k}>{s}</{k}>' # во внешнюю возвращаем строку, заключенную в заданный тег return teg_nem # из внешней возвращаем получившуюся строку k = input() # получаем название тега, в который нужно обернуть строку s = input() # получаем тестовую строку spor = teg(k) # даем право переменной на вызов функции print(spor(s)) # выводим получившуюся строку
Используя замыкания функций, объявите внутреннюю функцию, которая преобразует строку из списка целых чисел, записанных через пробел, либо в список, либо в кортеж. Тип коллекции определяется параметром tp внешней функции. Если tp = ‘list’, то используется список, иначе (при другом значении) — кортеж.
Далее, на вход программы поступают две строки: первая — это значение для параметра tp; вторая — список целых чисел, записанных через пробел. С помощью реализованного замыкания преобразовать эти данные в соответствующую коллекцию. Результат вывести на экран командой (lst — ссылка на коллекцию):
print(lst)
def replace_lst(tp,ls): # внешняя функция, которая принимает строку(формат вывода) и последовательность def replacer(): # вложеннная функция nonlocal tp,ls # даем разрешение на использование переданных аргументов из внешней функции tpl= [int(x) for x in ls.split()] # создаем список чисел из последовательности return tpl if tp=="list" else tuple(tpl) # если формат вывода равен list, то возвращаем во внешнюю функцию список с числами, иначе кортеж return replacer # из внешней возвращаем получившийся либо список либо кортеж lst_replace = replace_lst(input(),input()) # переменной даем право на вызов функции с двумя вводимыми аргументами print(lst_replace()) # выводим результат вызова
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы