Вопрос задан 12.06.2023 в 03:12. Предмет Информатика. Спрашивает Конузелев Олег.

Зробіть так, щоб програма працювала 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
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Слепчевич Вика.

Ответ:

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])

result.append(res)

except Exception as err:

print(type(err))

print(result)

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

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

  1. Виправте помилку в рядку res = divider(key, data[kem]), використовуючи правильне ім'я ключа key замість невірно введеного kem.

  2. Обережно обробляйте помилки, які можуть виникнути при виконанні функції divider. Замість того, щоб піднімати помилку ValueError для a < b, використайте конструкцію try-except для перехоплення помилки і додайте None до списку result. Якщо ви бажаєте викидати ValueError, замість None, можна використовувати raise ValueError("a < b").

  3. Додайте обробку помилки TypeError, коли ключ або значення в словнику data не можуть бути використані як аргументи для функції divider. Знову ж таки, додайте None до списку result у випадку виникнення помилки.

  4. Замість IndexError для перевірки b > 100, я змінив її на ValueError, аналогічно до перевірки a < b.

Ось оновлений код:

python
result = [] def divider(a, b): if a < b: raise ValueError("a < b") if b > 100: raise ValueError("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]) except (ValueError, TypeError): res = None result.append(res) print(result)

Цей код виконає ділення для кожного ключа та значення в словнику data. Якщо виникнуть помилки ValueError або TypeError, результатом буде None.

0 0

Похожие вопросы

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

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

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