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č.

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

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

5/7