teaching for loops before lists (was Re: Range Operation pre-PEP)

Alex Martelli aleaxit at yahoo.com
Thu May 10 10:48:04 CEST 2001

"Roman Suzi" <rnd at onego.ru> wrote in message
news:mailman.989472800.1598.python-list at python.org...
> > > Even recursion could be explained without lists in Python,
> > > why for-loops need this prerequisite?
> >
> > done much python training lately, or are you just making
> Yes. I taught programming classes a year ago.
> That is where I had some trouble with for-loops.

Personally, I've found that for-loops can easily
be taught without having introduced lists yet,
because they work on ANY sequence -- and a datatype
you will surely have introduced VERY early in any
Python course is "string"!  A string is a sequence.
This is of limited (though non-null) usefulness in
most Python use, but it SURE comes in handy when
teaching Python to a totally-raw beginner...:

For example, let's print the vowels, only, from
the string the user has introduced.  This is easy
because we can look at any string one character
at a time with the for statement.

astring = raw_input("Please enter a string: ")
print "Vowels:",
nvowels = 0
for c in astring:
    if c in 'aeiouAEIOU':
        print c,
        nvowels = nvowels + 1
print nvowels,"vowels in total"
if nvowels:
    print "The last vowel was",c

then you can go on to explain break, for/else,
and so on, all based on this simple toy example
about looping character by character on a string.

I do think one probably needs to have introduced
raw_input, strings, integers, assignment,
print, and if, before loops can fruitfully be
presented to a raw beginner.  But having some
nice special syntax for range literals would not
alter that, it seems to me.  Lists, if you wish,
can still come later, anyway.


More information about the Python-list mailing list