Č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
310Vypadá 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: 210Vš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čí chybouKeyError: 'Nazev'. - Slovník nemá indexy, takže
kniha[0]skončí chybouKeyError: 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.
Jak psát:
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
2/9