Модуль 7.8 Анонимные (lambda) функции.
Отметьте все правильные определения анонимных функций.
lambda x, y: x+y
lambda a: -a
lambda x: x
lambda: "hello lambda"
Объявите анонимную (лямбда) функцию с одним параметром для возведения числа в квадрат. Присвойте эту функцию переменной get_sq.
Вызывать функцию не нужно, только задать.
get_sq = lambda x: x**2 # в переменную записываем анонимную функцию,которая принимает число и возводит его в квадрат
Объявите анонимную (лямбда) функцию с двумя параметрами для деления одного целого числа на другое. Если происходит деление на ноль, то функция должна возвращать значение None, иначе — результат деления.
Присвойте эту функцию переменной get_div. Вызывать функцию не нужно, только задать.
# если одно из чисел равно нулю, то выводим None иначе результат от деления get_div = lambda a, b: None if a==0 or b==0 else a/b
Объявите анонимную (лямбда) функцию для вычисления модуля числа (то есть, отрицательные числа нужно делать положительными). Вызовите эту функцию для введенного числа x:
x = float(input())
Отобразите результат работы функции на экране.
x = float(input()) # получаем число get_abs = lambda y: -y if y < 0 else y # в переменную записываем анонимную функцию, которая принимает число и если оно больше нуля выводит противоположное ему число, иначе возвращает просто введенное число print(get_abs(x)) # выводим результат от вызова функции
Объявите анонимную (лямбда) функцию для определения вхождения в переданную ей строку фрагмента «ra». То есть, функция должна возвращать True, если такой фрагмент присутствует в строке и False — в противном случае.
Вызовите эту функцию для введенной строки s:
s = input()
Отобразите результат работы функции на экране.
s = input() # получаем строку # в переменную записываем анонимную функцию,которая если ra входит в строку возвращает True, иначе False func = lambda x: True if "ra" in x.lower() else False print(func(s)) # выводим резульатат вызова функции
В программе задана функция filter_lst (см. программу ниже), которая отбирает элементы, переданного ей итерируемого объекта и возвращает сформированный кортеж значений.
На вход программы поступает список целых чисел, записанных в одну строчку через пробел. Вызовите функцию filter_lst для формирования:
— кортежа из всех значений входного списка (передается в параметр it);
— кортежа только из отрицательных чисел;
— кортежа только из неотрицательных чисел (то есть, включая и 0);
— кортежа из чисел в диапазоне [3; 5]Каждый результат работы функции следует отображать с новой строки командой:
print(*lst)
где lst — список на возвращенный функцией filter_lst. Для отбора нужных значений формальному параметру key следует передавать соответствующие определения анонимной функции.
def filter_lst(it, key=None): if key is None: return tuple(it) res = () for x in it: if key(x): res += (x,) return res sp = input().split() # получаем строку и разбиваем на список print(*filter_lst(sp)) # выводим кортеж без сортировки print(*filter_lst(sp, lambda x: int(x)<0)) # выводим кортеж с отрицательными числами print(*filter_lst(sp, lambda x: int(x)>=0)) # выводим кортеж с неотрицательными числами print(*filter_lst(sp, lambda x: 3<=int(x)<=5)) # выводим кортеж с числами из промежутка от 3 до 5
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы