Вы читаете сумму из CSV как строку value = '3.14' и пытаетесь сделать int(value). Что произойдёт?
AБудет выброшен
ValueError, потому что строка '3.14' не является корректной записью целого числа для int().BБудет выброшен
TypeError, потому что функция int() отказывается работать со строковым типом аргумента str.CВернётся число
3.14 типа float, поскольку int() сам распознаёт точку и переключается на дробное представление.DВернётся число
3 типа int без ошибок, так как int() молча отбрасывает дробную часть строки '3.14'.Правильный ответ.
ValueError означает, что тип входа подходит, но значение нельзя преобразовать к нужному виду.Разбор
Здесь тип аргумента для int() допустим (строка), но само значение не соответствует формату целого числа. Это типичный ValueError. В отладке это сигнал проверить формат данных и решить, что делать: парсить через float() и затем округлять по правилам бизнеса или валидировать вход и кидать понятное исключение.
Проверь себя · 1/3разбор после ответа
В отчёте вы считаете сумму и случайно складываете число и строку:
total + "10". Какое исключение наиболее вероятно?Ещё вопросы по теме «Исключения и отладка»
- В обработчике данных используется конструкция `try`/`except`/`finally`. Внутри `try` произошла ошибка, она поймана в `except`. Что произойдёт с кодом в блоке `finally`?
- Вы парсите событие в словарь `event`. Что произойдёт при обращении `event['currency']`, если ключа `currency` в словаре нет?
- В отчёте вы считаете сумму и случайно складываете число и строку: `total + "10"`. Какое исключение наиболее вероятно?
- Скрипт получает список строк, но иногда он короче ожидаемого. Что произойдёт при обращении `rows[3]`, если в списке всего 3 элемента?
- Вы пишете функцию, которая внутри `try` делает `return`, а в `finally` закрывает ресурс (например, файл или соединение). Что произойдёт с кодом в `finally` при `return` из `try`?
- Все вопросы по «Исключения и отладка» →