Nauč se Python > Kurzy > Začátečnický kurz PyLadies > Slovníky > Zpětná vazba k domácím projektům

Feedback k domácím projektům

Slovník a mocniny

In [1]:
def mocniny(cislo):
  seznam_mocnin = []
  for i in range(1,cislo):
    seznam_mocnin.append((i, i**2))

  mocniny = dict(seznam_mocnin)  
  return mocniny
  
mocniny(4)
Out[1]:
{1: 1, 2: 4, 3: 9}

Jiné řešení

In [2]:
def mocniny(n):
    slovnik_mocniny = {}
    for i in range(1, n+1):
        slovnik_mocniny[i] = i**2
    return slovnik_mocniny

mocniny(4)
Out[2]:
{1: 1, 2: 4, 3: 9, 4: 16}

Součet klíčů a hodnot

In [3]:
def soucet_klicu_a_hodnot(slovnik):
    soucet_klicu = soucet_hodnot = 0
    for klic, hodnota in slovnik.items():
        soucet_klicu = soucet_klicu + klic
        soucet_hodnot = soucet_hodnot + hodnota
    soucty = (soucet_klicu, soucet_hodnot)
    return soucty

soucet_klicu_a_hodnot(mocniny(4))
Out[3]:
(10, 30)

Jiné řešení

In [4]:
def soucet_klicu_a_hodnot(slovnik):
    return((sum(slovnik.keys()), sum(slovnik.values())))

soucet_klicu_a_hodnot(mocniny(4))
Out[4]:
(10, 30)

Musí tam být tolik závorek?

In [5]:
def soucet_klicu_a_hodnot(slovnik):
    return sum(slovnik), sum(slovnik.values())

soucet_klicu_a_hodnot(mocniny(4))
Out[5]:
(10, 30)

Počet znaků v řetězci

In [6]:
def vypocti_znaky(retezec):
    slovnik = {}
    for znak in retezec:
        slovnik[znak] = retezec.count(znak)
    return slovnik

vypocti_znaky("Hello World!")
Out[6]:
{'H': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'W': 1, 'r': 1, 'd': 1, '!': 1}

Skautská hra

In [ ]:
import random

while True:
    odpoved = input('Na kolik odpovědí chceš hrát? ')
    try:
        odpoved = int(odpoved)
        break
    except ValueError:
        print('Musíš napsat celé číslo!')

kdo = []
s_kym = []
co_delali = []
kde = []
kdy = []
proc = []

vsechno = [kdo,s_kym,co_delali,kde,kdy,proc]

for i in range (odpoved):
    kdo1 = input ('Kdo? ')
    s_kym1 = input ('S kým? ')
    co_delali1 = input ('Co dělali? ')
    kde1 = input ('Kde? ')
    kdy1 = input ('Kdy? ')
    proc1 = input ('Proč? ')
    print('')

    kdo.append(kdo1)
    s_kym.append(s_kym1)
    co_delali.append(co_delali1)
    kde.append(kde1)
    kdy.append(kdy1)
    proc.append(proc1)

a=random.choice(kdo)
b=random.choice(s_kym)
c=random.choice(co_delali)
d=random.choice(kde)
e=random.choice(kdy)
f=random.choice(proc)

print(a, b, c, d, e, f)

Řešení, kde přidání, změna či odebrání jakékoli otázky znamená jen změnu na jednom míste v seznamu otázek.

In [ ]:
from random import choice

otazky = ['Kdo', 'S kým', 'Co dělali', 'Kde']

odpovedi = {}
for otazka in otazky:
    odpovedi[otazka] = []
    
for otazka in otazky:
    while True:
        odpoved = input('Zadej odpověď na otázku „{}?“ '.format(otazka))
        if not odpoved:
            break
        else:
            odpovedi[otazka].append(odpoved)

veta = ''

for otazka in otazky:
    veta = veta + choice(odpovedi[otazka]) + ' '

print(veta)

Obecné rady a postřehy

  • Evergreen = ptejte se!
  • Pochvala za všechna funkční řešení.
  • Pochvala za to, že pracujete i na starších úkolech.
  • Pochvala za dokumentační řetězce.
    • Ještě větší pochvala za dokumentační řetězce ve třech uvozovkách.
    • A ještě větší pochvala těm, kdož jsou konzistentní a dávají dokumentační řetězce úplně všude.

Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.