Предмет: Информатика, автор: soskoslalala

Зробіть так, щоб програма працювала, а всі типи винятків
виводились у консоль

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)

Ответы

Автор ответа: Abloid
0

Ответ:

Правильним рішенням було б обернути виклик функції 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.

Приложения:

Abloid: Сам не проверял, но думаю правильно. Лучший ответ, пожалуйста./Сам не перевіряв, але думаю правильно. Найкраща відповідь, будь ласка.
Похожие вопросы
Предмет: Литература, автор: ekobchikov
Предмет: Математика, автор: Аноним