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 15 - Textové řetězce v Pythonu do třetice - Split a Join

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
Michal
Člen
Avatar
Michal:17.3.2023 17:02

V ukázkovém programu je nefunkčně řešen problém neexistujícího znaku v dekódovaném řetězci. Sice je počítáno s nahrazením takového znaku otazníkem, ale metoda index se zastaví s chybou, takže k nahrazení nenalezeného znaku otazníkem nedojde.

 
Odpovědět
17.3.2023 17:02
Avatar
Jakub Fibich
Člen
Avatar
Jakub Fibich:6.4.2023 13:19

Dobrý den,
nemohu si pomoci, ale výklad mi přijde zmatený (párkrát se mi stalo, že jsem se musel vrátit k větám a znova si je pomalu přečíst).

Dále mi chybí trochu podrobněji popsat, proč jsme použili symbol "?". Jakou funkci má? Mohu ho nahradit jiným symbolem? Jaký je hlavní význam? Je to pouze autorova symbolika?
V textu jsem pouze vyrozuměl následující:
"protože se může stát, že znak v naší sadě nemáme"

 
Odpovědět
6.4.2023 13:19
Avatar
Aneta Krejčová:17.5.2023 21:51

přiznám se, že druhé části moc nerozumím, proč nehledám znaky ze slova v Morseově abecedě, místo morseovu abecedu ve znacích.

 
Odpovědět
17.5.2023 21:51
Avatar
Petr Dostál
Člen
Avatar
Petr Dostál:20.5.2023 14:12

vcelku se dá pochopit vše jen některé postupy nejsou úplně vysvětleny v lekcích.

Odpovědět
20.5.2023 14:12
Nikdy není pozdě
Avatar
Pavel Kohl
Člen
Avatar
Pavel Kohl:20.7.2023 6:42

Nedávno jsem dekodér morseovky řešil, možná trochu elegantnější řešení mě napadlo přes slovník.

slovnik = {"a" : ".-", ...}

Pak přiřadit hodnotu podle klíče:

morse = slovnik["a"]

Přišlo mi to trochu přehlednější a určitě lépe se upravuje. V indexu se snadněji ztratí, zvláště při velkém počtu položek. Ale jako příklad dobré.

 
Odpovědět
20.7.2023 6:42
Avatar
Pavel Kohl
Člen
Avatar
Pavel Kohl:20.7.2023 6:49

Třeba mi trochu chybí ukázání více oddělovačů. Například kdyby byla písmena Morseovy abecedy oddělena "/" místo mezer. V indexu se hůře orientuje. Možná by se hodilo rozepsat funkci otazníku, že jde o libovolný znak, který se poté nahradí nebo zůstane, pokud nenajde.

 
Odpovědět
20.7.2023 6:49
Avatar
Honza Pačuta:19.8.2023 13:40

Článek je super, ale jeden z předchozích článků mluví o pojmenovávací konvenci a camelCase není v Pythonu doporučen, ač ho mám nejraději.

 
Odpovědět
19.8.2023 13:40
Avatar
Simon Jahoda
Člen
Avatar
Simon Jahoda:3.11.2023 16:36

Zde je moje řešení programu, který naopak zakóduje zprávu do Morseových znaků. Snažil jsem se ošetřit chybu vzniklou zadáním nepovoleného znaku. Nevím jestli jsem nepřehlédl nějakou chybu, která by mohla nastat.

# PŘEVOD TEXTU NA MORSEOVU ABECEDU

''' Vytvoříme si cyklus "while", který nám projede zadaný uživatelův text, který vyhodnotí, zda zadal povolené znaky.
 Tyto porovná s proměnnou "povolene_znaky". V případě, že nalezne nepovolené znaky, tak je přesune do vytvořeného
 seznamu "nepovolene_znaky". Tyto následně vypíše a zastaví další běh programu. Dále znovu vyzve uživatele, aby text
 zadal znovu. '''

while True:
    text = input("Zde zadejte vaší zprávu bez diakritiky: ")

    povolene_znaky = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?@"
    nepovolene_znaky = []

    for znak in text:                                   # ošetření nepovolených znaků
        if znak != ' ' and znak not in povolene_znaky:  # projde text, ošetří mezery, které jsou povolené
            nepovolene_znaky.append(znak)               # ty co nejsou povolené - vloží do seznamu nepovolených

    if nepovolene_znaky:                                # jestliže najde nepovolené znaky, tak je vypíše
        print(f"Použil jsi tyto nepovolené znaky: {', '.join(nepovolene_znaky)}")
        print(f"Tady je výběr povolených znaků, které můžeš použít: {povolene_znaky}")
    else:
        break

# převod na velká písmena a rozdělení na jednotlivé znaky
text = text.upper()
znaky_rozdelit = list(text)

# vytvoření proměnné znaky_porovnat - podle kterých budeme porovnávat
znaky_porovnat = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.,!?@ "
# vytvoření seznamu  znaky_morse (jejich počet musí být shodný s počtem, který je uložen v proměnné "znaky_porovnat")
znaky_morse = [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.",
               "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "-----", ".----",
               "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", ".-.-.-", "--..--", "--...-",
               "..--..", ".--.-.", " "]
morseovka = ""

for znak in znaky_rozdelit:
    if znak in znaky_porovnat:
        index = znaky_porovnat.index(znak)
        morseovka += znaky_morse[index] + " "

# odstranění poslední mezery, pokud je přítomná
morseovka = morseovka.rstrip()

print(f"Přeložená zpráva do Morseovy abecedy: {morseovka}")
 
Odpovědět
3.11.2023 16:36
Avatar
Jakub Ježek
Člen
Avatar
Jakub Ježek:4.11.2023 19:03

Lekce jako taková je myslím napsaná dobře. Problém je (alespoň pro mě) že se zde vyskytují věci, které jsme doposud nebrali (a nejsou vysvětlené) - "try" a "except"... Na kurzu je obecně vidět, že každou lekci psal někdo jiný.

 
Odpovědět
4.11.2023 19:03
Avatar
Duy Hoang Do
Člen
Avatar
Duy Hoang Do:7.12.2023 9:53

Obecně mi přijde, že příklady k jednotlivých lekcím jsou zbytěčně těžké v porovnání třeba s kurzy CS50. Šifře jsou vůbec nerozuměl, vůbec bych se nezlobil, kdyby byl komentář je jednotlivým řádkům

 
Odpovědět
7.12.2023 9:53
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 28.