Čtení hodnot

Slovník je užitečný, jen když z něj umíte hodnoty zase dostat. Hodnotu přečtete tak, že za název slovníku napíšete do hranatých závorek klíč:

kniha = {"nazev": "Hobit", "autor": "J. R. R. Tolkien", "pocet_stran": 310}

print(kniha["nazev"])
print(kniha["pocet_stran"])
Hobit
310

Vypadá to jako čtení prvku seznamu, jmena[0], jen je v hranatých závorkách místo indexu klíč. Slovník žádné indexy nemá: každou hodnotu najdete podle jejího klíče, tak jako ve slovníku hledáte slovo podle toho, jak se píše, a ne podle toho, kolikáté v něm je.

kniha["nazev"] je hodnota jako každá jiná. Můžete ji uložit do proměnné, počítat s ní nebo ji vložit do f-řetězce:

kniha = {"nazev": "Hobit", "autor": "J. R. R. Tolkien", "pocet_stran": 310}

precteno = 100
print(f"{kniha['nazev']} ({kniha['autor']})")
print("Zbývá stran:", kniha["pocet_stran"] - precteno)
Hobit (J. R. R. Tolkien)
Zbývá stran: 210

Všimněte si uvozovek uvnitř f-řetězce: klíče jsou v jednoduchých uvozovkách, kniha['nazev']. F-řetězec sám je ve dvojitých uvozovkách a starší verze Pythonu by si myslely, že ho další dvojitá uvozovka ukončuje. Od verze 3.12 rozumí Python i zápisu f"{kniha["nazev"]}", ale s jednoduchými uvozovkami uvnitř bude váš kód fungovat v každé verzi.

Co když přečtete klíč, který ve slovníku není? Python ho nenajde a program skončí chybou KeyError (chyba klíče):

kniha = {"nazev": "Hobit", "autor": "J. R. R. Tolkien", "pocet_stran": 310}

print(kniha["rok_vydani"])
Traceback (most recent call last):
  File "<exec>", line 3, in <module>
KeyError: 'rok_vydani'

Poslední řádek říká, co se pokazilo: KeyError a klíč, který Python nenašel, 'rok_vydani'. Rok vydání kniha nemá. Řádek nad ním říká, na kterém řádku programu se to stalo. Pozor i na tyto příčiny:

  • Na velkých a malých písmenech záleží stejně jako u názvů proměnných: kniha["Nazev"] skončí chybou KeyError: 'Nazev'.
  • Slovník nemá indexy, takže kniha[0] skončí chybou KeyError: 0.

Když tedy uvidíte KeyError, zkontrolujte, jak jste klíč napsali. V jednom z dalších cvičení se naučíte zjistit, jestli ve slovníku klíč je, ještě než ho přečtete.

Pokyny

Program skončí chybou KeyError. Přečtěte si poslední řádek chybové hlášky a pak opravte klíč v print() tak, aby program vypsal název knihy, Hobit.

Pod to vypište větu Hobit má 310 stran. Název a počet stran nepište ručně, ale přečtěte je ze slovníku, třeba pomocí f-řetězce.

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

2/9