Вопрос задан 07.06.2023 в 06:13. Предмет Информатика. Спрашивает Чугункова Александра.

Зробіть так, щоб програма працювала, а всі типи винятків виводились у консоль 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)
0 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.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Щоб програма працювала та всі типи винятків виводились у консоль, потрібно внести кілька змін у ваш код:

python
result = [] 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)

Ось що було змінено:

  1. Додано відповідні повідомлення про помилки для ValueError та IndexError в конструкції raise.

  2. Використано data[key] замість data[kem] у циклі for. Це дозволяє отримувати значення b для поділу.

  3. Додано блок try-except для обробки винятків. Це дозволяє програмі продовжувати виконання після виникнення помилок. У випадку виникнення помилки, пов'язаної зі значенням a або b, вона друкується у консоль.

Тепер програма виведе результати поділу, а також повідомлення про всі типи винятків, які були винесені у консоль.

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос