The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Ключ словаря отсутствует"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Python, Django)
Изначальное сообщение [ Отслеживать ]

"Ключ словаря отсутствует"  +/
Сообщение от nicholas21email (ok), 23-Авг-23, 15:19 
Всем привет.

Я пытаюсь написать программу, которая вычисляет средний балл учеников. У меня есть словарь, где ключами являются имена учеников, а значениями — их оценки. Однако когда я пытаюсь вычислить среднее значение, я постоянно сталкиваюсь с проблемами. Это мой код:

scores = {'Alice': 85, 'Bob': 92, 'Eve': 78}

total_score = sum(scores.values())
average_score = total_score / len(scores)

print(f"The average score is: {average_score}")


Но я получаю эту ошибку:
KeyError: 'Charlie'

Я не уверен, почему я получаю ошибку KeyError для «Чарли», поскольку я даже не использую ее в своих расчетах, однако, похоже, я был неправ, поэтому я прочитал этот блог скалер(https://www.scaler.com/topics/remove-key-from-dictionary-python/), но не смог понять. вне. Может ли кто-нибудь помочь мне определить, что происходит?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Ключ словаря отсутствует"  +/
Сообщение от Аноним (1), 23-Авг-23, 16:33 
Ошибка «KeyError: 'Чарли'», которую вы видите, возникает из-за того, что ключ «Чарли» отсутствует в словаре оценок.

В своем коде вы пытаетесь вычислить средний балл, разделив общий балл на количество элементов в словаре с помощью len(scores). Однако словарь содержит только три ключа: «Алиса», «Боб» и «Ева».

Чтобы устранить эту проблему, вы можете либо добавить пару «ключ-значение» для «Чарли» в словарь оценок, либо изменить свой код для обработки случаев, когда в словаре могут отсутствовать все ожидаемые ключи.

Вот обновленная версия вашего кода, которая изящно справляется с этой задачей:

очки = {'Алиса': 85, 'Боб': 92, 'Ева': 78}
total_score = сумма(scores.values())
средний_балл = общий_балл / len(баллы)

print(f"Средний балл: {average_score}")
Если вы хотите обрабатывать случаи, когда ключ отсутствует в словаре, вы можете использовать метод словарей get(). Это позволяет вам указать значение по умолчанию, если ключ не найден. Вот пример:

очки = {'Алиса': 85, 'Боб': 92, 'Ева': 78}
total_score = сумма(scores.values())
средний_балл = общий_балл / len(баллы)

charlie_score = Scos.get('Charlie', 0) # Значение по умолчанию 0, если "Чарли" не найден
print(f"Счет Чарли: {charlie_score}")

print(f"Средний балл: {average_score}")
В этом случае, если «Чарли» не найден в словаре, для charlie_score будет использоваться значение по умолчанию, равное 0, что предотвращает ошибку KeyError.

Ответить | Правка | Наверх | Cообщить модератору

2. "Ключ словаря отсутствует"  +1 +/
Сообщение от ACCA (ok), 23-Авг-23, 23:32 
> Я не уверен, почему я получаю ошибку KeyError для «Чарли», поскольку я

Наверное потому, что ты показываешь какую-то другую программу, а не ту, которая тебе дала ошибку KeyError: 'Charlie'

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2023 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру