
Зробіть так, щоб програма працювала, а всі типи винятків виводились у консоль result = [] def
divider(a, b): if a < b: raise ValueError if b > 100: raise IndexError return a/b data = {10: 2, 2: 5, "123": 4, 18: 0, []: 15, 8 : 4} for key in data: res = divider(key, data[kem]) result.append(res) print(result)

Ответы на вопрос

Ответ:
Правильним рішенням було б обернути виклик функції divider у блок try-except і перехоплювати всі можливі винятки. У разі виникнення винятку, потрібно було б вивести повідомлення про помилку в консоль і додати значення None у список result.
Ось приклад, який вигляд матиме код:
python
Copy code
result = []
def divider(a, b):
if a < b:
raise ValueError
if b > 100:
raise IndexError
return a/b
data = {10: 2, 2: 5, "123": 4, 18: 0, []: 15, 8 : 4}
for key in data:
try:
res = divider(key, data[key])
except (ValueError, IndexError, TypeError) as e:
print(f"Error: {e}")
res = None
result.append(res)
print(result)
Тут ми обернули виклик функції divider у блок try-except і перехоплюємо всі можливі винятки. Якщо виняток виникає, ми виводимо повідомлення про помилку в консоль і додаємо значення None до списку result.




Щоб програма працювала та всі типи винятків виводились у консоль, потрібно внести кілька змін у ваш код:
pythonresult = []
def divider(a, b):
if a < b:
raise ValueError("a має бути більше або дорівнювати b.")
if b > 100:
raise IndexError("b має бути менше або дорівнювати 100.")
return a / b
data = {10: 2, 2: 5, "123": 4, 18: 0, []: 15, 8: 4}
for key in data:
try:
res = divider(key, data[key])
result.append(res)
except (ValueError, IndexError) as e:
print(f"Помилка: {type(e).__name__} - {str(e)}")
print(result)
Ось що було змінено:
Додано відповідні повідомлення про помилки для
ValueError
таIndexError
в конструкціїraise
.Використано
data[key]
замістьdata[kem]
у цикліfor
. Це дозволяє отримувати значенняb
для поділу.Додано блок
try-except
для обробки винятків. Це дозволяє програмі продовжувати виконання після виникнення помилок. У випадку виникнення помилки, пов'язаної зі значеннямa
абоb
, вона друкується у консоль.
Тепер програма виведе результати поділу, а також повідомлення про всі типи винятків, які були винесені у консоль.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili