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 [ ]:
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)

Jiné řešení

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

Součet klíčů a hodnot

In [ ]:
def soucet_klicu_a_hodnot(slovnik):
  suma_klicu = 0
  suma_hodnot = 0

  for klic in slovnik:
    suma_klicu += klic

  for hodnota in slovnik.values():
    suma_hodnot += hodnota

  return (suma_hodnot, suma_klicu)

Jiné řešení

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

Musí tam být tolik závorek?

Počet znaků v řetězci

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

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í bez slovníků, ale hlavně takové, kde by nebylo úplně snadné přidat další otázky.

In [ ]:
import random

kdo_seznam = []
s_kym_seznam = []
kde_seznam = []
co_delali_seznam = []
proc_seznam = []
for pocet in range(3):
    kdo = input('Kdo? ')
    kdo_seznam.append(kdo)
    s_kym = input('S kým? ')
    s_kym_seznam.append(s_kym)
    kde = input('Kde? ')
    kde_seznam.append(kde)
    co_delali = input('Co dělali? ')
    co_delali_seznam.append(co_delali)
    proc = input('Proč? ')
    proc_seznam.append(proc)
print(random.choice(kdo_seznam), 's', random.choice(s_kym_seznam),'v', random.choice(kde_seznam), random.choice(co_delali_seznam), random.choice(proc_seznam))

Ř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 kym', 'Co delali', 'Kde']

odpovedi = {}
for otazka in otazky:
    odpovedi[otazka] = []
    
for otazka in otazky:
    while True:
        odpoved = input('Zadej odpoved na otazku {}? '.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 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.