Чтение значений
Словарь полезен, только если значения можно достать обратно. Чтобы прочитать значение, напишите имя словаря, а затем ключ в квадратных скобках:
book = {"title": "Хоббит", "author": "Дж. Р. Р. Толкин", "pages": 310}
print(book["title"])
print(book["pages"])Хоббит
310Это похоже на чтение элемента списка, names[0], но в скобках вместо индекса стоит ключ. У словаря нет индексов: каждое значение находят по ключу, как слово в словаре находят по самому слову, а не по его номеру.
book["title"] — такое же значение, как любое другое. Его можно сохранить в переменную, вычислять с ним или подставить в f-строку:
book = {"title": "Хоббит", "author": "Дж. Р. Р. Толкин", "pages": 310}
pages_read = 100
print(f"{book['title']}, автор: {book['author']}")
print("Осталось страниц:", book["pages"] - pages_read)Хоббит, автор: Дж. Р. Р. Толкин
Осталось страниц: 210Обратите внимание на кавычки в f-строке: ключи в одинарных кавычках, book['title']. Сама f-строка в двойных кавычках, и старые версии Python решили бы, что следующая двойная кавычка её закрывает. Начиная с версии 3.12 Python понимает и f"{book["title"]}", но с одинарными кавычками внутри ваш код работает в любой версии.
А что, если прочитать ключ, которого в словаре нет? Python не может его найти, и программа завершается ошибкой KeyError:
book = {"title": "Хоббит", "author": "Дж. Р. Р. Толкин", "pages": 310}
print(book["year"])Traceback (most recent call last):
File "<exec>", line 3, in <module>
KeyError: 'year'Последняя строка говорит, что пошло не так: KeyError и ключ, который Python не нашёл, 'year'. У книги нет года издания. Строка выше сообщает, в какой строке программы это случилось. Остерегайтесь и таких причин:
- Заглавные и строчные буквы важны, как и в именах переменных:
book["Title"]завершается ошибкойKeyError: 'Title'. - У словаря нет индексов, поэтому
book[0]завершается ошибкойKeyError: 0.
Поэтому, увидев KeyError, проверьте, как вы написали ключ. В одном из следующих упражнений вы узнаете, как проверить, есть ли ключ, прежде чем его читать.
Задание
- 1
Программа завершается ошибкой
KeyError. Прочитайте последнюю строку сообщения об ошибке, а затем исправьте ключ вprint(), чтобы программа вывела название книги,Хоббит. - 2
Ниже выведите предложение
Хоббит: 310 страниц.Не печатайте название и число сами: прочитайте их из словаря, например в f-строке.