Avatar uživatele
Registrovaný

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/…

Díky moc za odpověd.

Odpovědi:

Avatar uživatele
Pokročilý

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://stackoverflow.com/quest ions/18863309/the-equivalent-o f-a-goto-in-python


Avatar uživatele
Stříbrný

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.


Avatar uživatele
Zlatý

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".

;-)

;-)

 

Diskuze k otázce

Avatar uživatele
Registrovaný

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

Avatar uživatele
Stříbrný

setapouch

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

Avatar uživatele
Stříbrný

setapouch

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

Avatar uživatele
Stříbrný

setapouch

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

 

Přihlásit se

Položte otázku, odpovězte, zapojte se, …

začněte zde

Reklama

Kvalitní odpovědi v: Počítače a internet

Zlatý Bedy 1525
Zlatý Michal Kole 1198
Zlatý mosoj 1028
Zlatý Hlada 948
Zlatý ge0rge 894
Zlatý www 829
Zlatý led 820
Zlatý badisko 818
Zlatý gecco 795
Zlatý arygnoc 674

Zobrazit celkový žebříček

Facebook

 

Váš požadavek se vyřizuje, počkejte prosím.