Diskuze: Start cyklu while v Pythoně
Člen
Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V cyklech Tě zajímá výraz v podmínce cyklu, nic jiného. V tomto případě je výraz v podmínce True. Takový cyklus poběží do nekonečna, dokud jej explicitně neukončíme pomocí příkazu break. Proměnná x nikterak nesouvisí s řídící podmínkou cyklu ikdyž je uvnitř cyklu používána.
Celý kód jinak zapsaný může vypadat takto:
x = 1
while x < 50:
x += 1
print(f"hodnota x je {x}")
print("Program úspěšně skončil")
Při letmém pohledu je samozřejmě ukázkový úryvek kódu zbytečný, neboť se pouze inkrementuje hodnota proměnné do stanovené hodnoty, nic víc. Takový kód lze pak napsat takto:
x = 50
print(f"hodnota x je {x}")
print("Program úspěšně skončil")
Smyslem dotazu je ale spuštění cyklu na základě pravdivé podmínky. Výraz v podmínce je to, co způsobuje to zda cyklus poběží či nikoli.
Ohledně: "V cyklech Tě zajímá výraz v podmínce cyklu, nic jiného.
"
Podívej se prosím Lekce 6 Cykly v Pythonu. Máme tam kód:
print("Vítejte v kalkulačce")
pokracovat= "ano"
while (pokracovat== "ano"):
a = float(input("Zadejte první číslo: "))
b = float(input("Zadejte druhé číslo: "))
print("Vyberte jednu z požadovaných operací:")
print("1 - sčítání")
print("2 - odčítání")
print("3 - násobení")
print("4 - dělení")
operace = int(input(""))
if (operace == 1):
vysledek = a + b
................ i tak dál.
Mě je dost těžké pochopit jak mohu rozumět ten
while True:
V kódu výše je všechno jasně - tam je deklarovana podmínka `pokracovat=
"ano" ` ,
a pak, na je základě, se prodložuje kód
while (pokracovat== "ano"):
který se skončí znovu polem input
pokracovat= input("Přejete si zadat další příklad? [ano/ne]: ")
Tj. tady je jasně CO se spouští, CO dává cyklu příkaz START a cyklus
while začíná pracovat.
Musím řict, že while True: je dost těžké pochopit jako
příkaz START.
Nehledej v tom nic složitého. Znovu, zajímá Tě pouze výraz v podmínce a to zda je pravdivý či nikoli. Pokud bude pravdivý, cyklus proběhne, pokud ne, řízení programu přejde do části za cyklem.
Pravdivá hodnota je jakákoli nenulová:
while True:
print("Toto je nekonečný cyklus s pravdivou podmínkou 'True'")
# Pro ukončení cyklu je třeba použít 'break' nebo jiný mechanismus
while 1:
print("Toto je nekonečný cyklus s pravdivou podmínkou '1'")
# Pro ukončení cyklu je třeba použít 'break' nebo jiný mechanismus
while -100:
print("Toto je nekonečný cyklus s pravdivou podmínkou '-100'")
# Pro ukončení cyklu je třeba použít 'break' nebo jiný mechanismus
while 1 + 5:
print("Toto je nekonečný cyklus s pravdivou podmínkou '1+5'")
# Pro ukončení cyklu je třeba použít 'break' nebo jiný mechanismus
x = 10
while x:
print(f"Toto je cyklus, který poběží, dokud je x={x} nenulové")
x -= 1
x = 10
while x < 100:
print(f"Hodnota x je {x} a cyklus bude pokračovat, dokud x<100")
x += 10
text = "Hello"
while len(text) > 0:
print(f"Zbývá {len(text)} znaků: {text}")
text = text[:-1]
x = 0
while x == 0:
print("Toto je cyklus s nulovou podmínkou 'x == 0'")
x += 1
atd.
A naopak, cyklus se přeskočí když výraz v podmínce bude nulový
flag = False
while flag:
print("Toto je cyklus s nulovou podmínkou 'flag'")
x = 0
while x:
print("Toto je cyklus s nulovou podmínkou 'x == 0'")
x += 1
x = 10
while False:
print("Toto je cyklus s nulovou podmínkou 'x == 10'")
x += 1
x = 10
while 0:
print("Toto je cyklus s nulovou podmínkou 'x == 10'")
x += 1
x = 10
while x == 0:
print("Toto je cyklus s nulovou podmínkou 'x == 0'")
x += 1
atd.
Dívej se pouze na podmínky cyklu. Obsahuje-li proměnnou, podívej, co je uvnitř proměnné. Pokud obsahuje prostý výraz (-100, False), stačí určit zda je tento výraz True. True nebo False je rovněž výraz, Výsledkem výrazu je True nebo False... Na základě výrazu se cyklus spustí nebo bude pokračovat, platí-li podmínka (výraz bude True). Přeskočí se, nebude-li podmínka platit (výraz bude False).
Velmi dobře. Tuto tabulku je nejlepší přidat do lekce pro
booleovské výrazy. To umožňuje lepší pochopení
materiálu.
Ale mám otázku, chtěl bych jen upřesnit:
x = 10
while False:
print("Toto je cyklus s nulovou podmínkou 'x == 10'")
x += 1
Nulová podmínka tady je False, ne?
A to samé zde:
x = 10
while 0:
print("Toto je cyklus s nulovou podmínkou 'x == 10'")
x += 1
Nulová podmínka tady je 0, ne?
Příklady jsou namátkově vymyšlené a nejsou kompletní, ale pro pochopení to postačí.
Ano, u prvního úryvku kódu je výraz False a u druhého 0. Text uvnitř print je zavádějící. Smyslem bylo poukázat na to že ani u jednoho z úryvků kódu se neprovede cyklus while.
Zobrazeno 8 zpráv z 8.