NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 18 - Funkce a výjimky v Pythonu

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Kristián Lörincz:13.2.2021 15:44

Ahoj, v podstatě jsem chtěl napsat něco podobnýho, jako nade mnou Jarda Antoš. Docela mi v tomto tutoriálu chybí "blbuvzdorné" vysvětlování pod každým příkladem, jaké je v článcích od Davida Čápky.

 
Odpovědět
13.2.2021 15:44
Avatar
Jan Svoboda
Člen
Avatar
Jan Svoboda:16.2.2021 20:55

Asi bych také souhlasil s kolegy nade mnou. Podrobnější vysvětlení by bylo dobré.

Editováno 16.2.2021 20:56
 
Odpovědět
16.2.2021 20:55
Avatar
Petr Krchňák:6.12.2021 2:11

Abych uklidnil všechny, kteří se zde začali cítit v koncích: nejste sami! Trvalo mně asi půl dne tupého zíráni do monitoru na zdroják vylepšené kalkulačky, než se mi podařilo definice funkcí alespoň trochu pochopit :-D . Doporučuji pevné nervy a čerpat informace z více zdrojů, např. PyLadies , kde je to možná vysvětlené maličko lépe s ohledem na začátečníky.

Na procvičení jsem si zkusil naprogramovat jednoduchý převodník měn:

podporovane_meny = ["CZK", "EUR", "GBP", "USD", "THB"]
meny =[
        [1, 0.039, 0.034, 0.044, 1.51], #CZK
        [25.41, 1, 0.85, 1.13, 38.29],  #EUR
        [29.76, 1.17, 1, 1.32, 44.85],  #GBP    #KURZY PLATNÉ K 6.12. 2021
        [22.47, 0.88, 0.76, 1, 33.85],  #USD
        [0.66, 0.026, 0.022, 0.030, 1]  #THB
]

def overeni_meny (chybova_hlaska, otazka):
    cyklus0 = True
    while cyklus0:
        print ("Podporované měny: ", *podporovane_meny)
        mena = input (otazka)
        mena = mena.upper()
        if mena in podporovane_meny:
            cyklus0 = False
        else:
            print (chybova_hlaska)
    return mena

def overeni_hodnoty (otazka, chybova_hlaska):
    cyklus1 = True
    while cyklus1:
        try:
            zadani = float(input(otazka))
            if zadani > 0:
                return zadani
            else:
                print (chybova_hlaska)
        except ValueError:
            print (chybova_hlaska)

def vypocet (mena1, mena2, hodnota):
    index = podporovane_meny.index(mena1)
    index2 = podporovane_meny.index(mena2)
    mezivypocet = meny[index][index2]
    finalni_vypocet = mezivypocet * hodnota
    print(hodnota, mena1, "=", finalni_vypocet, mena2)

def pokracovat ():
    cyklus2 = True
    while cyklus2:
        odpoved = input ("Přejete si zadat další konverzi? a/n ")
        odpoved = odpoved.upper()
        if odpoved == "A":
            cyklus2 = False
            return True
        elif odpoved == "N":
            cyklus2 = False
            return False
        else:
            print ("Neplatná volba!")

def main ():
    hlavni_cyklus = True
    while hlavni_cyklus:
        mena1 = overeni_meny ("Zadanou měnu konvertor bohužel nepodporuje!", "Kterou měnu si přejete konvertovat? ")
        hodnota = overeni_hodnoty ("Zadejte hodnotu: ", "Bohužel jste nezadal platnou hodnotu.")
        mena2 = overeni_meny ("Zadanou měnu konvertor bohužel nepodporuje!", "Do které měny si přejete zadanou částku konvertovat? ")
        vypocet (mena1, mena2, hodnota)
        if pokracovat ():
            pass
        else:
            hlavni_cyklus = False
            print ("Na schledanou!")
            input()

main ()
 
Odpovědět
6.12.2021 2:11
Avatar
Petr Krchňák:6.12.2021 2:18

Např. oproti kurzu PyLadies (naucse.python.cz), je zde definice funkcí vysvětlena opravdu náročně.

 
Odpovědět
6.12.2021 2:18
Avatar
Marekmk
Člen
Avatar
Marekmk:6.12.2021 11:34

Opis v niektorých krokoch nebol dosť podrobný pre začiatočníka

 
Odpovědět
6.12.2021 11:34
Avatar
adam
Člen
Avatar
adam:3.4.2022 15:25

Ahoj

Potřeboval bych pomoct z Python definicemi.
Myslím to tak ,že když bude odpověď "ne" tak se mi vypíše text na odpověď ne .A když bude odpověď "ano" ,tak aby se mi vypsal text na odpověď ano.
Doufám ,že to někdo pochopíte a poradíte jak to mám udělat.
Předem děkuju za odpověď.

Editováno 3.4.2022 15:27
 
Odpovědět
3.4.2022 15:25
Avatar
Katka
Tvůrce
Avatar
Odpovídá na adam
Katka:19.4.2022 11:26

Ahoj Adame,
nevím, jestli chceš s ano/ne pracovat v rámci nějaké funkce? Kdyžtak upřesni dotaz...
Pouhá reakce na ano/ne by byla asi takhle:

odpoved = input("ANO nebo NE:\n").lower()

if odpoved == "ano":
    print("Text na odpověď ano...")
elif odpoved == "ne":
    print("Text na odpověď ne...")
else:
    print("Odpověď měla být ano/ne!")
Odpovědět
19.4.2022 11:26
Rozdíl mezi tím, kým jsme a tím, kým chceme být, je jen v tom, co děláme.
Avatar
Martin Borkovec:10.7.2022 18:30

Ahoj, můžu se jen zeptat, proč aplikace nacti_cislo a dalsi_priklad jsou while loop? Kždy je aplikace main while loop, to nestačí?
Když jsem udělal kalulačku bez while loop u nacti_cislo a dalsi_priklad, tak se mi zdá, že to funguje stejně.

Děkuji za odpověď

 
Odpovědět
10.7.2022 18:30
Avatar
Odpovídá na Martin Borkovec
Martin Borkovec:10.7.2022 21:37

Beru dotaz zpět. Už jsem si to rozklíčoval. :-))

 
Odpovědět
10.7.2022 21:37
Avatar
Nina Kubačková:14.7.2022 11:00

Funguje mě (skoro) všechno. Kde jsem udělala chybu v tomto případě, netuším...

 
Odpovědět
14.7.2022 11:00
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 10 zpráv z 118.