Přidávání položek
Zákazníci si do košíku pořád něco přidávají, a tak na to váš program potřebuje funkci: pridej_polozku(polozky, nazev, cena, pocet). Ta pro položku vytvoří nový slovník a pomocí .append() ho přidá na konec seznamu.
Funkce, které předáte seznam, dostane přímo tento seznam, ne jeho kopii. Když tedy pridej_polozku() přidá položku do polozky, dostane se položka do seznamu kosik a účtenka vypsaná potom ji ukáže. Proto funkce nemusí nic vracet. To není v rozporu s tím, co víte o lokálních proměnných: přiřazení do proměnné uvnitř funkce vytvoří novou lokální proměnnou, ale .append() nic nepřiřazuje, mění přímo samotný seznam.
Dobrý program svá data také kontroluje. Přidat něco v počtu 0 kusů, nebo dokonce -1, nedává smysl. Na začátku funkce proto zkontrolujte počet, a když je menší než 1, vypište zprávu a funkci ukončete pomocí return. Protože return funkci ukončí, kód, který položku přidává, se už neprovede. return bez hodnoty je v pořádku: funkce nic nevrací, jen skončí. Stejně to funguje u seznamu hostů ("" je prázdný text, mezi uvozovkami není nic):
def pridej_hosta(hoste, jmeno):
if jmeno == "":
print("Host musí mít jméno.")
return
hoste.append(jmeno)
oslava = ["Anna"]
pridej_hosta(oslava, "")
pridej_hosta(oslava, "Tomáš")
print(oslava)Host musí mít jméno.
['Anna', 'Tomáš']Volání patří dolů, nad vypis_uctenku(kosik): nejdřív se změní košík a potom se vypíše účtenka. A s kávou přijde překvapení: objednávka bude stát přesně 600 Kč.
Jak psát:
Pokyny
Pod funkci vypis_uctenku() (nad kód úplně dole) napište funkci pridej_polozku(polozky, nazev, cena, pocet), která na konec seznamu polozky přidá slovník s klíči "nazev", "cena" a "pocet".
Dole nad vypis_uctenku(kosik) přidejte dvě balení kávy po 130 Kč: pridej_polozku(kosik, "Káva", 130, 2). Na účtence se objeví nový řádek Káva: 2 x 130 Kč = 260 Kč a celková cena je teď přesně 600 Kč, takže doprava je zdarma: Doprava: 0 Kč a K zaplacení: 600 Kč. Pokud doprava pořád stojí 79 Kč, zkontrolujte podmínku ve funkci cena_dopravy().
Na začátek funkce pridej_polozku() přidejte kontrolu: když je pocet menší než 1, vypište Položku Vejce nelze přidat: počet musí být alespoň 1. s názvem položky místo Vejce a funkci ukončete pomocí return. Vyzkoušejte to pod kávou: pridej_polozku(kosik, "Vejce", 60, 0). Nad účtenkou se objeví zpráva a vejce na účtenku nepřibudou.
Začněte programovat zdarma
5/7