Решение модуля 7.10 Инди-курс программирования на Python

Модуль 7.10 (Анонимная функция Lambda). Анонимная функция Lambda

Функция, которая не имеет имени называется:
lambda-функцией
анонимной

Что произойдет после выполнения программы ниже?

res = lambda: 'hello'
print(res())
Распечатается hello
Укажите верные утверждения о lambda-функциях:
Могут содержать условный оператор

Не могут содержать цикл
Полезны, когда нужна функция из 1 строки/действия
Работают как те функции, которые содержат return

В переменную adding_10 присвойте lambda функцию, которая принимает одно число и увеличивает его на 10.

Ничего кроме создания переменной adding_10 делать не нужно

adding_10 = lambda x: x + 10  # таким образом мы в переменной сохраняем анонимную функцию, которая принимает число и возвращает его, но увеличенное на 10 

В переменную starts_with присвойте lambda функцию, которая принимает строку и возвращает True, когда переданная строка начинается с буквы W. Во всех остальных случаях нужно возвращать False

Ничего кроме создания переменной starts_with делать не нужно

starts_with = lambda stroka: True if stroka[0] == 'W' else False   # таким образом мы в переменной сохранили анонимную функцию, которая принимает строку и если она начинается с W - возвращаем True, иначе False

Имеется функция sale, которая возвращает цену товара со скидкой 10%.

def sale(x):
    return x*0.9

Однако мы изучаем анонимные функции, поэтому на основе данной функции создайте анонимную функцию и присвойте её переменной sale_lambda

sale_lambda = lambda x: x*0.9   # таким образом мы создали анонимную функцию, которая возвращает цену товара со скидкой 10%

Хорошо постарались с прошлой задачей! Однако мы забыли, что скидка должна быть только для тех товаров, стоимость которых больше 50. Вам стоит внести это изменение в прошлый код

Ваша задача только переопределить переменную sale_lambda 

sale_lambda = lambda x: x if x <= 50 else x*0.9   # так мы создали анонимную функцию, которая получает цену и если она равна 50 или меньше скидка не действует, если больше 50 применяем скидку

Начальник дал Ване задачу возвести в квадрат два числа и сложить полученные результаты. Но Ваня очень разволновался и допустил несколько ошибок.

Вам, как опытному коллеге, необходимо исправить ошибки Вани, чтобы начальник не лишил его зарплаты.  Исправления нужно сделать только в пределах одной строки.

Вводить и выводить ничего не нужно

sq = lambda x, y: x**2 + y**2
# 3я степень - куб, а не квадрат, исправляем на 2
# сумма - это знак "+", а не "-". Исправляем минус на плюс
# landba - нет такого, есть только lambda - исправляем
# в анонимной функции писать return не нужно, он сам это понимает - стираем
# операция * - умножение, а ** возведение в степень - исправляем
# после перечисления передаваемых параметров ставим ":", а не ";" - исправляем

Напишите lambda функцию, которая принимает произвольное количество числовых аргументов и выводит их среднее арифметическое.
Для проверки решения присвойте вашу lambda функцию переменной average.

Вводить и выводить ничего не нужно, только определить переменную average

average = lambda *args: sum(args) / len(args)   # создаем анонимную функцию, которая принимает несколько чисел и находит их среднее арифметическое

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

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

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