Sandy wrote:
Hi all,
A simple and silly if-else question.
I saw some code that has the following structure. My question is why
else is used there though removing else
has the same result. More important, is it not syntactically wrong :-(

for i in xrange(8):
    if i < 4:
        print i
else:
    print i

Cheers,
dksr

The else is not tied to the if, it is tied to the for. The statements in a for-else (and while-else, and if-else) only execute if the control expression becomes False. If you want to avoid executing the else clause, you have to break out of the loop.

Some examples:

In [1]: for i in xrange(8):
   ...:     if i < 4:
   ...:         print i
   ...:
0
1
2
3

In [2]: for i in xrange(8):
   ...:     if i < 4:
   ...:         print i
   ...: else:
   ...:     print i
   ...:
0
1
2
3
7

In [3]: for i in xrange(8):
   ...:     if i < 4:
   ...:         print i
   ...:     if i == 1:
   ...:         break
   ...: else:
   ...:     print i
   ...:
0
1

Hope this helps!

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to