I just realized that this code does not work the way I hoped it would worked...
for i in [0,2,4]:
if i%2==0:
print i
else:
print "There are no EVEN #s"
So what's the best way of coding this sort of structure
The idea is to run the "else" statement code if the "if" statement never becomes true through all the iterations of the "for" loop
解决方案
The code doesn't work as you would like it to because the if and else are not on the same level of scope. However, there is a for...else syntax in Python that you were perhaps trying to use. For information on that, see here. To use the for...else syntax, you need to have a break statement inside the for loop. If it breaks, then the else is not called, otherwise the else be called after the loop is done.
However, if you don't have a break statement, then else always runs.
Here is your code, corrected:
for i in [0,2,4]:
if i%2==0:
print i
break
else:
print "There are no EVEN #s"
As soon as the loop encounters an even number, the loop breaks. Otherwise, if the loop would fully execute (i.e. go through the entire list), then it would also run the else. Just for reference, here is the loop on a list of odd numbers:
for i in [1,3,5]:
if i%2==0:
print i
break
else:
print "There are no EVEN #s"