NEJVÝHODNĚJŠÍ AKCE ROKU: 90 % extra kreditů ZDARMA s promokódem STROMECEK90. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 9 - Podmínky (větvení) podruhé - Konstrukce match 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
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
t.teichmanova:25. března 8:38
#Použití kalkulačky s cyklem while/break - opravená verze
while True:
    a = float(input("Zadejte první číslo: "))
    b = float(input("Zadejte druhé číslo: "))
    print("Zvolte si operaci: ")
    print("1 - sčítání")
    print("2 - odčítání")
    print("3 - násobení")
    print("4 - dělení")
    volba = int(input())
    vysledek = 0.0
    match volba:
        case 1:
            vysledek = a + b
        case 2:
            vysledek = a - b
        case 3:
            vysledek = a * b
        case 4:
            if b != 0:
                vysledek = a / b
            else:
                print("Nulou nelze dělit!")
                vysledek = "N/A"

    if volba > 0 and volba < 5:
     print(f"Výsledek: {vysledek}")

  #  print(vysledek)
    # terminate the loop when user enters end
    user_input = input('Zadejte dalsi  čísla nebo ukončete slovem end: ')
    if user_input == 'end':
        print(f'The loop is ended')
        break
Avatar
Barbora Zdvihalová:1. června 7:41

Asi bych uvítala víc poznámek v kódu - co dělá co. V této lekci například nerozumím, proč je v kalkulačce řádek "vysledek = 0.0".

Avatar
DarkCoder
Člen
Avatar
Odpovídá na Barbora Zdvihalová
DarkCoder:1. června 20:23

Podívej se do diskuze následujícího článku, kde jsem se k tomu vyjádřil:

Cyklus while v Pythonu

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Petr Svárovský:19. října 13:57

To se jako učím naprogramovat kalkulačku v kurzu za 50K?

Avatar
Jiří Mynář:29. listopadu 14:50

Kde je vysvětleno co znamená case? Musím si to zvlášť dohledat, abych to věděl

Avatar
DarkCoder
Člen
Avatar
DarkCoder:29. listopadu 21:57

Vysvětlení konstrukce match v článku je podle mě zbytečně zjednodušené. Ukazujete příklad, ale chybí zde popis samotného principu pattern matchingu a popis základní prvků konstrukce.

match v Pythonu 3.10 nepřináší jen náhradu za klasický switch z jiných jazyků, ale kompletní Structural Pattern Matching, které umožňuje mnohem víc možností než pouhé porovnávání literálů.

Tento článek a článek v kapitole 16. aktuálně pokrývá jen nejzákladnější patterny:

literal pattern
wildcard pattern
OR pattern

To je ale jen asi čtvrtina toho, co match umí. Chybí například:

capture patterns
sequence patterns
mapping patterns
class patterns
guards
zachycení zbytku (*rest)
vnořené patterny

Tohle tvoří skutečnou sílu pattern matchingu a bez těchto ukázek může čtenář snadno nabýt dojmu, že match je jen hezčí varianta if/elif.

Zároveň ale chápu, že tento článek je zaměřený na začátečníky. Bylo by skvělé, kdyby se pokročilejší možnosti pattern matchingu doplnily později — až ve chvíli, kdy bude čtenář obeznámený s odpovídajícími konstrukcemi, jako jsou práce se sekvencemi, slovníky nebo třídami. To by dalo celému tématu logickou návaznost a pomohlo pochopit, proč Python konstrukci match vůbec zavedl.

Odpovědět
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Nejnovější komentáře jsou na konci poslední stránky.
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 6 zpráv z 56.