```Sean Russell schrieb:
> I feel like such a novice... but would someone explain to me why such a
> construction would be necessary? Specifically, for ... else ... end.  What
> is the difference between:

(No difference here, as no break is used.)

Extract from the Python doc:

<cite>
Loop statements may have an else clause; it is
executed when the loop terminates through
exhaustion of the list (with for) or when the
condition becomes false (with while), but not when
the loop is terminated by a break statement.
This is exemplified by the following loop, which
searches for prime numbers:

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...            print n, 'equals', x, '*', n/x
...            break
...     else:
...          # loop fell through without finding a factor
...          print n, 'is a prime number'

</cite>

(REM: the range() function creates a list of items
*excluding* the end point. I.e.: n itself is *not* part
of the range ).

The situation that you want to know the exact
status after a loop is very common IMHO, and
is in classic languages (C, C++, Java, ...)
typically solved by using flag variables like this:

for n in 2..9
myflag = 0
for x in 2..(n-1)  # see remark above
var = n % x
if var == 0
print n, ' equals ', x, " * ", n/x, "\n"
myflag = 1
break
end
end
if myflag == 0
# loop fell through without finding a factor
print n, " is a prime number\n"
end
end

HTH

Det
```