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

Модуль 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

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

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

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