IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Python definice nevím co s tím. Automat na nápoje

V předchozím kvízu, Online test znalostí Python 2.7, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Jiří Bervid:24.8.2020 9:23

Zdravím snažím se vytvořit nápojový automat, bohužel mi to stále píše <function A at 0x03E03580>. Prosím o radu. A tady je zdroj. Už jsem z toho na odstřel :D :

[]'''Nápojový automat
Nápojový automat o třech produktech
Vstup:vklad peněz
Výstup:vrácení + nápoj
'''

print ("Nápojový automat") #Vytiskne nabídku nápojů s cenou
print ("A- Čaj 10 Kč")
print ("B- Káva 15 Kč")
print ("C- Čokoláda 20 Kč")
print ("Zvolte nápoj")

int ("Čaj"==10) #Proměnné budou mít hodnotu 10,15,20
int ("Káva"==15)
int ("Čokoláda"==20)

def A (vklad): #Vytvoření definice
if A ==( vklad - čaj ):
print("Nápoj je hotov:",vklad - čaj)

def B (vklad):
if int(vklad - Káva):
print ("Nápoj je hotov")

def C (vklad):
if vklad - Čokoláda:
print("Nápoj je hotov")

def vklad(vložte_čás­tku):
vklad=int(input(vlož­te_částku))

\---

 
Odpovědět
24.8.2020 9:23
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:24.8.2020 10:56

https://www.onlinegdb.com/…hon_compiler

Error1 protoze mas pred ''' znaky []

Error2 protoze bloky se resi posunem zleva (jestli je tam mas, pak jsi mel u zpravy pouzit nahled a doladit vzhled)
if A ==( vklad - čaj ):
^
IndentationError: expected an indented block

Kompilace pak ok. Kdyz tu to parsovani nedas, tak s tim kodem nema smysl ztracet cas, protoze to nemusi byt snadne odhadnout, jak to melo byt parsovane. Python zas vymyslel neco chytreho, kde ostatni pouzivaji slozene zavorky a kod je pak mozne minifikovat :)

'''Nápojový automat
Nápojový automat o třech produktech
Vstup:vklad peněz
Výstup:vrácení + nápoj
'''

print ("Nápojový automat") #Vytiskne nabídku nápojů s cenou
print ("A- Čaj 10 Kč")
print ("B- Káva 15 Kč")
print ("C- Čokoláda 20 Kč")
print ("Zvolte nápoj")

int ("Čaj"==10) #Proměnné budou mít hodnotu 10,15,20
int ("Káva"==15)
int ("Čokoláda"==20)

def A (vklad): #Vytvoření definice
  if A ==( vklad - čaj ):
    print("Nápoj je hotov:",vklad - čaj)

def B (vklad):
  if int(vklad - Káva):
    print ("Nápoj je hotov")

def C (vklad):
  if vklad - Čokoláda:
    print("Nápoj je hotov")

def vklad(vložte_částku):
  vklad=int(input(vložte_částku))
def A (vklad): #Vytvoření definice
  if A ==( vklad - čaj ):
    print("Nápoj je hotov:",vklad - čaj)

Tohle mi nedava smysl. Definuj funkci A s parametrem vklad. A uvnitr te funkce porovnavas nazev te funkce A s nejakym cislem. To je preci nesmysl, ne?

Editováno 24.8.2020 10:58
 
Nahoru Odpovědět
24.8.2020 10:56
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:24.8.2020 11:00

google = python napojovy automat

 
Nahoru Odpovědět
24.8.2020 11:00
Avatar
Pavel
Člen
Avatar
Pavel:24.8.2020 11:57

Krom chyb, které byly zmíněny, by sis měl nejdřív ujasnit jak by to mělo fungovat.
Zřejmě:

  1. ukážeš uživateli seznam produktů s cenami - OK
  2. přijmeš vstup od uživatele, zřejmě písmena A, B nebo C - TODO
  3. porovnáš volbu uživatele s možnými volbami a požádáš uživatele o příslušnou částku - TODO
  4. zkontroluješ, zda uživatel zaplatil částku odpovídající volbě - TODO
  5. konec

Volitelně:

  1. opakovat celý proces dokud uživatel nezadá volbu pro ukončení

Jinak tady jsem něco spichnul: https://repl.it/…yLinuxkernel#…

 
Nahoru Odpovědět
24.8.2020 11:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.