Na jednom z předchozích srazů jsme napsaly
funkci popis_karty
, která vypadala zhruba
takhle:
def popis_karty(karta): hodnota, barva, licem_nahoru = karta if not licem_nahoru: return '[???]' if hodnota == 1: znak_hodnoty = 'A' elif hodnota == 10: znak_hodnoty = 'X' elif hodnota == 11: znak_hodnoty = 'J' elif hodnota == 12: znak_hodnoty = 'Q' elif hodnota == 13: znak_hodnoty = 'K' else: znak_hodnoty = str(hodnota) if barva == 'Pi': znak_barvy = '♠ ' elif barva == 'Sr': znak_barvy = ' ♥' elif barva == 'Ka': znak_barvy = ' ♦' elif barva == 'Kr': znak_barvy = '♣ ' return '[{}{}]'.format(znak_hodnoty, znak_barvy)
Teď, když známe slovníky, můžeme tuhle funkci výrazně zjednodušit pomocí vyhledávacích tabulek.
if not licem_nahoru:
.
def popis_karty(karta): hodnota, barva, licem_nahoru = karta if not licem_nahoru: return '[???]' barvy = {'Pi': '♠ ', 'Sr': ' ♥', 'Ka': ' ♦', 'Kr':'♣ '} znak_barvy = barvy[barva] hodnoty = {1: 'A', 10: 'X', 11: 'J', 12: 'Q', 13: 'K'} znak_hodnoty = hodnoty.get(hodnota, str(hodnota)) return '[{}{}]'.format(znak_hodnoty, znak_barvy)