Решение модуля 7.10 Добрый, добрый Python

Модуль 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())         # выводим результат вызова

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x