else clauses in while and for loops

Joshua Macy amused at webamused.com
Sat Mar 25 22:37:29 CET 2000

Tomek Lisowski wrote:
> Hi!
> Which is the reason for else clauses in while and for loops? At the first
> look it seems, that the statements in the else suit is executed always after
> processing the loop. Wouldn't it be simpler, if I just put those statements
> after the loop, and omit the else clause completely?
> Please give some examples showing the real need for else clauses in this
> context.
> Thanks in advance
> Tomasz Lisowski

 Look again.  The else clause of a loop is only executed if the while
terminates without hitting a break.  For instance:

def lookup(stringList, word):
    """Finds the first instance of word in stringList. Returns -1 if not
    i = 0
    while i < len(stringList):
        if stringList[i] == word:
        i = i + 1
	# is only executed if we never hit that break
        return -1
    return i

if __name__ == '__main__':
    test = ["Happy", "Happy", "Joy", "Joy"]
    print lookup(test, "Joy")
    print lookup(test, "Log")

==== prints ===


More information about the Python-list mailing list