Дописать функцию division, которая будет принимать на вход 2 целых числа, а возвращать результат деления первого числа на второе в виде строки (прим.: 5/2 = '5.0')

Функция возвращает str(a / b), а при ошибке — имя класса исключения. В примере условия опечатка: 5 / 2 равно 2.5, а не 5.0.

Короткий ответ

Что ответить на собеседовании

Функция возвращает str(a / b), а при ошибке — имя класса исключения. В примере условия опечатка: 5 / 2 равно 2.5, а не 5.0.

Подробный разбор

Ответ с пояснениями

Условие

Дописать функцию division, которая будет принимать на вход 2 целых числа, а возвращать результат деления первого числа на второе в виде строки (прим.: 5/2 = '5.0') Если поймали исключение, то надо вернуть строку - название исключения, (прим. ввели входные данные неверного типа - 'TypeError')

def division(a: int, b: int) -> str:

Ответ

Функция возвращает str(a / b), а при ошибке — имя класса исключения. В примере условия опечатка: 5 / 2 равно 2.5, а не 5.0.

Аннотации не проверяют типы автоматически, поэтому для строгого требования целых чисел проверку добавляют явно:

def division(a: int, b: int) -> str:
    try:
        if type(a) is not int or type(b) is not int:
            raise TypeError
        return str(a / b)
    except Exception as exc:
        return type(exc).__name__

division(5, 2) вернёт '2.5', division(5, 0) — 'ZeroDivisionError', а строковый аргумент — 'TypeError'. Здесь bool намеренно не считается допустимым целым. Широкий перехват выбран под учебный контракт возврата имени ошибки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее