Simple if-else question

Ethan Furman ethan at stoneleaf.us
Tue Sep 29 18:09:50 CEST 2009


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~



More information about the Python-list mailing list