La dichiarazione for ... else
viene utilizzato per implementare cicli di ricerca.
In particolare, gestisce il caso in cui un ciclo di ricerca non riesce a trovare nulla.
for z in xrange(10):
if z == 5:
# We found what we are looking for
print "we found 5"
break # The else statement will not execute because of the break
else:
# We failed to find what we were looking for
print "we failed to find 5"
z = None
print 'z = ', z
uscita:
we found 5
z = 5
Tale ricerca è uguale
z = None
for z in xrange(10):
if 5 == z:
# We found what we are looking for
break
if z == None:
print "we failed to find 5"
else:
print "we found 5"
print 'z = ', z
ricordi che for
non inizializza z se l'elenco di ricerca è vuota (cioè []
). Ecco perché dobbiamo assicurarci che z sia definito quando lo usiamo dopo la ricerca. Quanto segue solleverà un'eccezione perché z
non è definito quando proviamo a stamparlo.
for z in []:
if 5 == z:
break
print "z = ",z
uscita
print "z = ",z
NameError: name 'z' is not defined
In sintesi, la clausola else
eseguirà ogni volta che il ciclo for
termina naturalmente. Se si verifica un'interruzione o un'eccezione nel ciclo for
, l'istruzione else
non verrà eseguita.
... o un'eccezione generata –
Oh, lo so. Grazie mille. – Jimmy