Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 8. diel - Podmienky (vetvenie) v Pythone

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
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
rogzyn
Člen
Avatar
rogzyn:22.3.2014 17:52

nerozumiem prikazu break na co je vhodne ho tam dat.
neda sa to napisat bez toho ?

a tiez neviem naco by bolo uzitocne niekedy pouzit prikaz continue

dakujem za vysvetlenie

print("Program zjistí zda dané slovo obsahuje samohlásky.")
slovo = input("Zadejte slovo: ")
samohlasky = False
for znak in slovo:
    if znak in "aáeéěiíoóuúů":
        samohlasky = True
        **break**
if samohlasky:
    print(slovo, "obsahuje samohlásky.")
else:
    print(slovo, "neobsahuje samohlásky.")
input("")
Avatar
rogzyn
Člen
Avatar
rogzyn:22.3.2014 18:00

premenna znak nebola nikde definovana. co vlastne predstavuje v strukture ?
je to len "povinna vata", akysi medzistupen, bez ktoreho sa to neda napisat ?
dik

Avatar
gcx11
Tvůrce
Avatar
gcx11:22.3.2014 18:09

Ahoj, znak je povinná vata. Je to proměnná do které se ukládá aktuální znak z řetězce v tomto případě řetězce slovo. Tu proměnou lze pojmenovat i jinak. Poté s tím znakem děláš co potřebuješ. V tomto případě zjistíš, zda-li je v "aáeéěiíoóuúů". Pokud ano - je to samohláska.

Ten break tam být nemusí, ale jakmile jednou zjistíš, jestli tam je samohláska, tak to zjišťovat pro další znaky nemá význam.

Jestli jsi to nepochopil, klidně se ptej :)

Editované
Avatar
gcx11
Tvůrce
Avatar
Odpovedá na rogzyn
gcx11:22.3.2014 18:17

Ten continue - rovnou pokračuje v další iteraci cyklu.

Například chceš-li sčítat všechna lichá čísla od 1 do čísla zadaného uživatelem, tak sudá přeskočíš:

print("Program sečte všechna lichá čísla do n")
maximalni_cislo = input("Zadejte číslo: ")
vysledek = 0
for cislo in range(maximalni_cislo):
    if cislo % 2 == 0: #je sudé
        continue
    else:
        vysledek = vysledek + cislo
print("Výsledek je", vysledek)
input("")

EDIT: U předchozí opovědi jsem se špatně vyjádřil, bez toho znak (nebo čehokoliv jiného) se to napsat nedá. Je to taková syntaxe cyklu for.

Editované
Avatar
rogzyn
Člen
Avatar
rogzyn:22.3.2014 19:10

je toho viac co mi je nejasne, ale nechcem sa pytat uz lebo ostatni sa budu asi hnevat
ale pre mna je to nove, kedze som este neprogramoval

Avatar
rogzyn
Člen
Avatar
rogzyn:22.3.2014 19:59

tento kod ti nesuhlasi s obrazkom k tomu

print("Program zjistí z čeho se skládá slovo.")
slovo = input("Zadejte slovo: ")
samohlasky = 0
souhlasky = 0
ostatni = 0
cisel = 0
for znak in slovo:
    if znak in "aáeéěiíoóuúů":
        samohlasky = samohlasky + 1
    elif znak in "bcčdďfghjklmnňprřsštťvwxzž":
        souhlasky = souhlasky + 1
    elif znak in slovo:
        cisel = cisel + 1
    else:
        ostatni = ostatni + 1
print(slovo, "má: ")
print(samohlasky, "samohlásek")
print(souhlasky, "souhlásek")
print(cisel, "čísel")
print(ostatni, "ostatních znaků...")
input("\nAplikaci ukončíte stisknutím libovolné klávesy...")

v printe ma byt prve textovy retazec az potom premenna

a nechapem ako si nadefinoval cisla. znak je automaticky cislo alebo neviem si to predstavit. nemalo tam byt nieco ako
cisel = type(number)

len strielam....

mozes vysvetlit mne ako laikovy co znamena Iteracia, Iterovat ?

Editované
Avatar
gcx11
Tvůrce
Avatar
gcx11:22.3.2014 20:08

Dík, no vidíš že to chápeš :D Opravím to.

Syntaxe cyklu for je:

for proměnná in iterovatelný_ob­jekt

No a ten cyklus bere postupně jednotlivé prvky toho iterovatelného objektu (v tomto případě jednotlivé znaky řetězce). No a v aktuálním průchodu cyklem se ti do proměnné uloží momentální znak. S ním pak něco můžeš dělat.

Klidně se ptej, aspoň pokud to bude číst někdo další tak to pochopí. Mně to přijde jasné, jelikož to s tím mám zkušenosti, ale na začátku jsem to taky moc nechápal.

Avatar
gcx11
Tvůrce
Avatar
Odpovedá na rogzyn
gcx11:22.3.2014 20:14

V pythonu definovat nic nemusíš, sám pozná datový typ podle toho co do něj přiřazuješ. Iterace je opakování, iterovatelný objekt je objekt, který lze rozložit do více objektů. Např. řetězec se skládá z jiných řetězců... Ale pro čísla toto neplatí! Musel by jsi ho převést na řetězec.

Avatar
rogzyn
Člen
Avatar
rogzyn:22.3.2014 20:16

nie nechapem, inak som to myslel
nevadi

gl

Avatar
gcx11
Tvůrce
Avatar
Odpovedá na rogzyn
gcx11:22.3.2014 20:22

Nechtěl aby jsi myslel, že tě chci odbýt. Asi to neumím vysvětlit :(
znak není číslo, do něj se ukládají jednotlivé znaky z řetězce.
Při prvním průchodu cyklem se do něj uloží první. Pak zjišťuješ, jestli je ten znak samohláska, nebo něco jiného... Při druhém průchodu cyklem se do něj uloží druhé písmeno (ne navíc, přepíše minulý znak) a tak dále...

Posledné komentáre sú na spodnej časti poslednej stránky.
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.

Zobrazené 10 správy z 161.