Avatar uživatele
Peki

Jak vrátit v jazyce Python program na začátek cyklu?

Ahoj, učím se programovat a mám takový problem který bych potřeboval objasnit.

Chci dát do podmínky to, že když nastane vrátí to celý program jakoby na začátek. Přikládám jednoduchý kód, který jsem sestrojil.

http://www.jpeg­.cz/images/2015/10/­16/GEd5K.jpg

Díky moc za odpověd.

Zajímavá 0 před 3307 dny Sledovat Nahlásit



Odpovědi
Avatar uživatele
Muffz

Python, fuj, proc, ble.
V odkazu mas ekvivalent klasickeho goto napsany pro python.
Sklada se z navesti (kam chces, aby program skocil) a odkazu na nej (tedy misto, odkud do nej chces skakat).

V tvem pripade tedy nahoru napises treba „label: jumphere“ a dolu do else „goto jumphere“.
Kazdopadne programatori se jakymkoliv verzim goto vyhybaji jako cert krizi.

Dalsi moznost je tedy hodit do funkce cely kod, pak v else zavolas zase tuto funkci (budes tedy cyklit, pokud bude splnena prvni podminka, vykona se, pokud druha, vykona se, pokud nebude splnena ani jedna, program se vraci a pta se na obtiznost znova).

Zdroj: http://stacko­verflow.com/qu­estions/18863309/t­he-equivalent-of-a-goto-in-python

0 Nominace Nahlásit


Avatar uživatele
setapouch

V pythonu nedělám, takže ti napíšu jen pseudokód. Udělal bych na začátku smyčku čekající na správné zadání.

obtiznost = int(obtiznost)

do {
obtiznost = input „zadej obtiznost 1 nebo 2“
obtiznost = int(obtiznost)

if(obtiznost != 1 nebo obtiznost =! 2)
print „neplatna volba“
}
while (obtiznost != 1 nebo obtiznost != 2)

Tento kus pseudokódu alespoň jednou požáda o vstup. Pokud zadá cokoli jiného než 1 nebo 2, vypíše chybu. Obojí se opakuje, dokud nezadá požadovaná čísla.

0 Nominace Nahlásit

Avatar uživatele
arygnoc

neoveruj obtiažnosť v cykle (hry), ale PRED vykonávaním (herného) cyklu – tiež napr. v cykle.

druhá možnosť je „zabaliť“ celý herný cyklus do „overovacie cyklu“.

😉

😉

0 Nominace Nahlásit


Diskuze k otázce
Avatar uživatele
Peki

Diky moc za odpovedi. Chci psat slusny kod takze to goto se mi moc nelibi. Asi to zabalǐm do funkce. A nejde to i nejak rekurzivne pomoci while?
Jinak proc si myslis ze je python fuj. Ma hezkou syntaxi pouziva ho seznam google. Uvazoval jsem jeste o ruby

před 3307 dny Odpovědět Nahlásit
Avatar uživatele
setapouch

Rekurzivní volání funkce je v tomto případě stejná prasárna jako GOTO.

před 3307 dny Odpovědět Nahlásit
Avatar uživatele
setapouch

arygnoc: jsem rád, že jsi mohl použít mou odpověď. Rádo se stalo.

před 3307 dny Odpovědět Nahlásit
Avatar uživatele
setapouch

A jak koukám, šlo by to elegantněji, to jsou ta rána :D

před 3307 dny Odpovědět Nahlásit
Nový příspěvek
Zajímavé otázky v kategorii Počítače a internet