Forum » Programiranje » [Python] Enumerate in ponoven poizkus po napaki
[Python] Enumerate in ponoven poizkus po napaki

bluefish ::
V zanki bi rad ulovil napako ter ponovil iteracijo v kateri se je napaka zgodila.
Trenutno imam nekaj v stilu:
Nato recimo testiram z:
Zanka se po napaki nadaljuje, vendar seveda ne ponovi iteracije, pri kateri je prišlo do napake. V primeru torej pri i = 2.
Kak predlog?
Trenutno imam nekaj v stilu:
for i, item in enumerate(items): try: # nekaj_1 # nekaj_2 except Exception: print('Napaka.') continue
Nato recimo testiram z:
for i, item in enumerate(items): try: # nekaj_1 if i == 2: raise Exception # nekaj_2 except Exception: print('Napaka.') continue
Zanka se po napaki nadaljuje, vendar seveda ne ponovi iteracije, pri kateri je prišlo do napake. V primeru torej pri i = 2.
Kak predlog?

kuall ::
Identično vprašanje sem jaz postavil za C# in Visual Studio in dobil odgovor, tam se take stvari da ujeti z nekim hit counterjem. Za Python pa dvomim, C# in Visual Studio sta napredna, dvomim, da je Pynthon tudi tako.
Saj bi dal link do stackoverflow samo potem bom svojo identitteto razkril, kar pa ne bi rad naredil.
Saj bi dal link do stackoverflow samo potem bom svojo identitteto razkril, kar pa ne bi rad naredil.

OrkAA ::
Dodaj se eno neskoncno zanko znotraj vsake iteracije. V stilu:
Je pa to zelo naiven sistem. Bos moral razmislit kako preprecit neskoncni loop, ce se dolocene operacije enostavno ne bo dalo opravit. Recimo namesto neskoncne zanke imet for loop s parimi ponovitvami ali pa kaj pametnejsega.
for i, item in enumerate(items): while True: try: # nekaj_1 # nekaj_2 except Exception: print('Napaka.') continue break
Je pa to zelo naiven sistem. Bos moral razmislit kako preprecit neskoncni loop, ce se dolocene operacije enostavno ne bo dalo opravit. Recimo namesto neskoncne zanke imet for loop s parimi ponovitvami ali pa kaj pametnejsega.

Raptor F16 ::
Kolikor poznam funkcijo enumerate, ti bo iz nekega seznama naredila tole:
Je to to, kar si hotel ? Da ti ob dvojki vrže napako ?
Pač if stavek sem dal pred vse drugo. Najprej naj bi postavil pogoje, sicer ti meče takole:
#1 trololo
#2 trololo
#2 Napaka.
#3 trololo
seznam = ['kocka', 'krog', 'trikotnik'] for i, item in enumerate(seznam,1): try: if i == 2: raise Exception print('wololo') print (i,'trololo') except Exception: print(i, 'Napaka.') continue #Output, ki ga dobim je sledeč: #1 trololo #2 Napaka. #3 trololo
Je to to, kar si hotel ? Da ti ob dvojki vrže napako ?
Pač if stavek sem dal pred vse drugo. Najprej naj bi postavil pogoje, sicer ti meče takole:
#1 trololo
#2 trololo
#2 Napaka.
#3 trololo
Leva ... Leva ... leva desna ena dva
Zgodovina sprememb…
- spremenil: Raptor F16 ()

kuall ::
orkaa ga je razumel kaj hoče, jaz ga pa nisem. samo čudno mi je, da tako vprašanje postavlja, ker je odgovor čist tak enostaven, ki ga moraš sam razgruntat, samo malo je za razmislit.
On bi rad, da če je napaka v vrstici se tista vrstica 2x (ali dokler ni več napake) poganja. če ni napake pa samo 1x.
inner loop seveda rabiš, kaj pa drugega.
On bi rad, da če je napaka v vrstici se tista vrstica 2x (ali dokler ni več napake) poganja. če ni napake pa samo 1x.
inner loop seveda rabiš, kaj pa drugega.

SloKin ::
https://stackoverflow.com/a/16551393
Funkcija, ki jo pozenes za vsak elemnt in vrne true ali false glede na exception... Ponavljas dokler set ni prazen ali po kaksni drugi hevristiki...
Funkcija, ki jo pozenes za vsak elemnt in vrne true ali false glede na exception... Ponavljas dokler set ni prazen ali po kaksni drugi hevristiki...

Spura ::
Ne razumem zakaj toliko kompliciranja.
Lahko pa namesto boolean spremenljivke uporabis counter, ali pa imas kak bolj kompleksen pogoj kdaj retry na false nastavit, da ti pac ne bo slo v neskoncne loope.
for i, item in enumerate(items): retry = true while retry try: # nekaj_1 # nekaj_2 retry = false except Exception: print('Napaka.')
Lahko pa namesto boolean spremenljivke uporabis counter, ali pa imas kak bolj kompleksen pogoj kdaj retry na false nastavit, da ti pac ne bo slo v neskoncne loope.

SloKin ::
Ne razumem zakaj toliko kompliciranja.
for i, item in enumerate(items):
retry = true
while retry
try:
# nekaj_1
# nekaj_2
retry = false
except Exception:
print('Napaka.')
Lahko pa namesto boolean spremenljivke uporabis counter, ali pa imas kak bolj kompleksen pogoj kdaj retry na false nastavit, da ti pac ne bo slo v neskoncne loope.
Evo, da ti zakompliciram se malo... A ves, da je tole precej drugacen algoritem?
Analogija: zbiras podpise v bloku. Tvoj algoritem gre od vrat do vrat in trka dokler mu vrat ne odprejo. Njegov algoritem gre do prvih vrat in potrka. Ce mu ne odprejo gre naprej. Ko pride do konca, gre cez tiste, ki mu niso odprli.
Bi rekel, da je to kompliciranje? Po mojem ne. Prej bi rekel osnove programiranja...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Python3] Izvajanje ukazov po določenem časuOddelek: Programiranje | 1524 (1134) | noraguta |
» | Programiranje v pythonuOddelek: Programiranje | 2163 (1521) | Sony-Tech |
» | Pomoč pri izdelavi Python skripte (strani: 1 2 )Oddelek: Programiranje | 6092 (4738) | BigWhale |
» | [Python] Pomoč pri računanju Pi-jaOddelek: Programiranje | 2610 (2242) | Spura |
» | tabele v pythonu...Oddelek: Programiranje | 1186 (967) | noraguta |