Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

Diskusia – 14. diel - Textové reťazce v Pythone do tretice - Split a Join

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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.

 
Odpovedať
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"

 
Odpovedať
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.

 
Odpovedať
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.

Odpovedať
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é.

 
Odpovedať
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.

 
Odpovedať
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.

 
Odpovedať
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}")
 
Odpovedať
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ý.

 
Odpovedať
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

 
Odpovedať
7.12.2023 9:53
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!