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

Модуль 9.8 Функция isinstance для проверки типов данных.

Отметьте все верные пункты для функций isinstance и type.

пример вызова функции: isinstance(x, float)
пример вызова функции: type(x) in (float, int)
функция isinstance выполняет проверку типов с учетом их наследования
пример вызова функции: type(x) == bool
пример вызова функции: type(x) is int
функция type возвращает фактический тип для переданного ей аргумента (без учета наследования)
пример вызова функции: isinstance(x, (str, float))

Определите функцию с именем get_add, которая складывает или два числа или две строки (но не число со строкой) и возвращает полученный результат. Если сложение не может быть выполнено, то функция возвращает значение None. Сигнатура функции должна быть, следующей:

def get_add(a, b): …

Вызывать функцию не нужно, только определить. Также ничего не нужно выводить на экран.

P. S. Не забудьте про необходимость различения булевых значений (False, True) от целочисленных.

def get_add(a, b):
    # Проверяем, что a и b не являются булевыми значениями
    # Если одно из значений - булево, то сразу возвращаем None
    if type(a) != bool != type(b):
        # Проверяем, что a и b являются обоими числами (int или float) или обоими строками
        if isinstance(a, (int, float)) == isinstance(b, (int, float)):
            # Если это числа, то складываем их и возвращаем результат
            return a + b
        elif isinstance(a, str) == isinstance(b, str):
            # Если это строки, то конкатенируем их и возвращаем результат
            return a + b

Определите функцию с именем get_sum, которая принимает на входе итерируемый объект (список, строку, кортеж, словарь, множество) и вычисляет сумму только целых чисел, взятых из элементов итерируемого объекта. Вычисленная сумма возвращается функцией. Если целых чисел нет, то возвращается 0.

Сигнатура функции должна быть, следующей:

def get_sum(it): …

Вызывать функцию не нужно, только определить. Также ничего не нужно выводить на экран.

Примеры входного аргумента функции:

get_sum([1,2,3, «a», True, [4, 5], «c», (4, 5)])
get_sum({5, 6, 7, ‘8’, 5, ‘4’})
get_sum((10, «f», ’33’, True, 12))
get_sum([‘1’, True, False, (1, 23)])

P. S. Не забудьте про необходимость различения булевых значений (False, True) от целочисленных.

def get_sum(itr):
    # Функция sum() принимает итерируемый объект и возвращает сумму его элементов
    # Для каждого элемента x из itr вычисляем x, если x является целым числом, иначе 0.
    # Используем генератор списка, чтобы создать список из всех x или 0, соответствующих каждому элементу itr.
    # Затем функция sum() возвращает сумму элементов этого списка, что дает сумму всех целых чисел в itr.
    return sum(x if type(x) == int else 0 for x in itr)

Определите функцию с именем get_even_sum, которая принимает на входе итерируемый объект (список, строку, кортеж, словарь, множество) и вычисляет сумму только целых четных чисел, взятых из элементов итерируемого объекта. Результат возвращается функцией. Если целых чисел нет, то возвращается 0.

Сигнатура функции должна быть, следующей:

def get_even_sum(it): …

Вызывать функцию не нужно, только определить. Также ничего не нужно выводить на экран.

P. S. Не забудьте про необходимость различения булевых значений (False, True) от целочисленных.

def get_even_sum(it):
    # Функция filter фильтрует элементы итерируемого объекта it
    # Оставляет только элементы, для которых результат выполнения лямбда-функции равен True
    # В данном случае, лямбда-функция проверяет, является ли элемент целым числом и четным
    # Если да, то элемент сохраняется в результате фильтрации
    # Используется встроенная функция sum, чтобы найти сумму оставшихся элементов
    # Если после фильтрации не осталось ни одного элемента, то возвращается 0
    return sum(filter(lambda x: type(x) is int and not x % 2, it), 0)

Определите функцию с именем get_list_dig, которая возвращает список только из числовых значений переданной ей коллекции (список или кортеж).

Сигнатура функции должна быть, следующей:

def get_list_dig(lst): …

Вызывать функцию не нужно, только определить. Также ничего не нужно выводить на экран.

P. S. Не забудьте про необходимость различения булевых значений (False, True) от целочисленных.

def get_list_dig(lst):
    # Создание пустого списка для хранения найденных чисел
    list_dig = []
    # Итерация по элементам входного списка
    for i in lst:
        # Проверка, что элемент не является логическим значением (bool)
        if type(i) != bool:
            # Проверка, что элемент является числом (int или float)
            if isinstance(i, (int, float)):
                # Добавление числа в список найденных чисел
                list_dig.append(i)
    # Возврат списка найденных чисел
    return list_dig

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

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

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