NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
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 – 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
Avatar
Jendos
Člen
Avatar
Jendos:30.7.2023 11:46

U klíčového slova else chybí dvojtečka. :)

 
Odpovědět
30.7.2023 11:46
Avatar
Jakub Havlík:29.8.2023 15:17

Nenašel jsem základní match() v prvním článku o Větvení a podmínkách v Pythonu

 
Odpovědět
29.8.2023 15:17
Avatar
Karel Zaoral
Člen
Avatar
Karel Zaoral:25.9.2023 14:30

Ahoj všem, díky za zpětné vazby, lekce byla aktualizovaná.

 
Odpovědět
25.9.2023 14:30
Avatar
Dušan Kovářík:28.12.2023 5:33

"Popiš prosím autorovi, co je špatně" ... když jsem dal hodnocení článku 4 hvězdy. Ok. Myslím si, že článek by si zasloužil trochu více rozvedení některách nuancí, které jsou typické pro Python. Je totiž napsaný jako před kopírák k článkům zaměřeným na Javu nebo C#. Uvádí pouze odlišnou syntaxi, ale už se nevěnuje těm věcem, které jdou v Pythonu udělat jinak.

 
Odpovědět
28.12.2023 5:33
Avatar
Dušan Kovářík:28.12.2023 5:49

Například:

a = int(input("Zadejte číslo v rozmezí 10-20: "))
if a >= 10 and a <= 20:
    print("Zadal jsi správně")
else:
    print("Zadal jsi špatně")

není dle mého názoru nejvhodnější ukázka logického operátoru and, protože tento úryvek kódu lze v Pythonu napsat jednoduššeji a to takto:

a = int(input("Zadejte číslo v rozmezí 10-20: "))
if 10 <= a <= 20:
    print("Zadal jsi správně")
else:
    print("Zadal jsi špatně")

Klauzule case _: - zde by bylo vhodné zmínit, že ono podtržítko představuje název proměnné a ve skutečnosti je jedno, jaký název proměnné zde použijeme. Daný kód by mohl být klidně napsaný např. takto:

x = 10  # Hodnota pro demonstrování

match x:
    case 10:
        print("Začátek bloku pro hodnotu 10.")  # Všimněme si více příkazů v jedné větvi case
        print("x je rovno 10. ")                # v bloku s odsazením
        print("Konec bloku pro hodnotu 10. Zde dojde k opuštění match.")
    case 20:
        print("x je rovno 20.") #
    case 30:
        print("x je rovno 30.")
    case other:
        print("x má jinou hodnotu.")

a fungoval by úplně stejně, i když pro název proměnné, která se dále nikde nepoužije, se v Pythonu zpravidla volí právě podtržítko.
Zkrátka mi článek přijde až příliš ořezaný. Jen můj názor!

 
Odpovědět
28.12.2023 5:49
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá na Dušan Kovářík
Karel Zaoral:28.12.2023 10:20

Ahoj, díky za zpětnou vazbu. Na jednu stranu máš pravdu, ale problém je v tom, že kdybychom pokryli za všech okolností všechny možnosti jazyka, měl by kurz základů 50 lekcí. Je třeba všechny základní konstrukce vysvětlit tím nejjednodušeji pochopitelným způsobem. Jak ten alternativní logický zápis, tak to podtržítko se dostane ke slovu později v kurzu, když už má člověk více znalostí a zápis pochopí intuitivně sám. Není pak nutné detailně vysvětlovat, proč se jeden problém dá řešit několika různými způsoby. Dobře pro tebe, že obě konstrukce znáš už teď! Pro úplné začátečníky si ale myslím, že je lepší naučit se konstrukce obvyklé a známé z jiných jazyků, které už třeba znají, nebo z výrokové logiky, kterou si prošli ve škole. Za pár lekcí později si zápis 10 <= a <= 20 prohlédnou v ukázce kódu a k vysvětlení postačí jeden řádek textu. To už budou totiž podmínky a logiku znát daleko intuitivněji a bude pro ně snadné kód přečíst. K tomu podtržítku je v lekci uvedené, že _: slouží k obsluze všech ostatních hodnot, které nebyly definovány v předchozích větvích match bloku. To myslím vystihuje, co jsi napsal. Když teď přidám odstavec, kde budu vysvětlovat, k čemu všemu, jak a proč se podtržítko v Pythonu využívá (protože jen zástupným symbolem to nekončí a další dotazy budou následovat), budu muset doplnit příklady, lekce bude extrémně dlouhá a lidé si budou oprávněně stěžovat, že na ně valíme kvanta informací, které v přiděleném čase nemají šanci zpracovat. Stejně tak bychom museli doplnit i další odstavec na and a or a jiné odpovídající příklady. Osobně si myslím, že je lepší učit se postupně a zlepšovat znalosti po určité konsolidaci, než naráz absorbovat obrovskou dávku informací, z nichž si zapamatuju sotva polovinu.

 
Odpovědět
28.12.2023 10:20
Avatar
Odpovídá na Karel Zaoral
Dušan Kovářík:29.12.2023 16:42

Rozumím a děkuji za reakci! Však já taky neříkám, že kurz je špatný. 4 hvězdičky jsou z mého pohledu stále velmi dobré hodnocení. Jsem prostě takový - někdy dám 4 hvězdičky místo pěti, protože kdybych všude dával pět, nemohl bych dát více k něčemu, co se mi líbí ještě víc 🙂
Zkrátka systém hodnocení článků neposkytuje žádné rozmezí v oblasti "líbí se mi". Musím hodnotit buď absolutně (pěti hvězdičkami), nebo musím napsat, "co je špatně", i když si nemyslím, že by bylo něco špatně. Je to (opět - jen z mého pohledu) trochu manipulativní, protože hodně lidem se nebude chtít psát dodatečný text, pokud se rozhodnou hodnotit jinak než absolutně, takže tito lidé buď dají těch 5 hvězdiček nebo nebudou hodnotit vůbec, a tak to bude vypadat, že všechny články jsou naprosto dokonalé, i když si to každý nemusí myslet. Ale to není tvoje chyba.
Jinak k samotnému článku: Možná by stačilo sem tak někde doplnit větu typu "Tohle se dá udělat i jinak, budeme to probírat později, pro tuto chvíli nám to stačí takto." Příklad se složeným logickým výrokem by bylo možné udělat třeba "když je číslo menší než 20 a zároveň je sudé:

if cislo < 20 and cislo % 2 == 0:

Vím, jsou to drobnosti, možná nepodstatné, a právě rozdíl mezi čtyřmi a pěti hvězdičkami je v mém stylu hodnocení také nepodstatný, a odpovídá právě takovýmto drobnostem. Také vím, že napsat ucelený seriál dá hodně práce a cením si toho, že to někdo dělá. Proto mám rád ITnetwork - většina jiných zdrojů je zaměřena na videa. Nic proti videím, ale je jich prostě všude mraky, ať už na výukových platformách v angličtině, nebo na YouTube.
Takže já osobně děkuji za tento seriál a za veškeré úsilí druhých lidí, kteří píšou jiné seriály, a přeju, ať se daří!

 
Odpovědět
29.12.2023 16:42
Avatar
Vladislav Efler:31.12.2023 0:46

Match mi nefunguje, udělal jsem aktualizaci Pycharm. Python interpreter mám Python 3.9.
C:\Users\vladi\Ap­pData\Local\Pro­grams\Python\Pyt­hon39\python.e­xe C:\Users\vladi\Pychar­mProjects\Hello­World\main.py
File "C:\Users\vla­di\PycharmPro­jects\HelloWor­ld\main.py", line 3
match x:
^
SyntaxError: invalid syntax

Process finished with exit code 1

 
Odpovědět
31.12.2023 0:46
Avatar
Karel Zaoral
Člen
Avatar
Odpovídá na Vladislav Efler
Karel Zaoral:31.12.2023 17:43

Ahoj Vladislave, přímo v lekci máš napsané: "Konstrukce match je v Pythonu implementována od verze 3.10."

 
Odpovědět
31.12.2023 17:43
Avatar
Vladislav Efler:31.12.2023 18:11

Aha, tak pardon, vlastně jsem to chápal mylně jako, že to je 3.1 (ne 3.10) a že je to nějaká historická, když jsem udělal update na nejnovější a váš článek je docela už starý a oni tam ještě nejnovější nemají.

 
Odpovědět
31.12.2023 18:11
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 51.