Модуль 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) # создаем анонимную функцию, которая принимает несколько чисел и находит их среднее арифметическое
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы