[Tutor] How does it work?

Alan Gauld alan.gauld at btinternet.com
Mon Jan 3 19:29:39 CET 2011


"Patty" <patty at cruzio.com> wrote

>>>>>>>for c in 'abcd':

>>> c takes the value of each letter in turn

>> When I first looked at this - I thought that the variable 'c' would 
>> have had to be initialized first earlier in the program.

It is initialized earluier - in the for statement, each time through 
the
loop it gets reinitialized to a new value.

>> ... I wasn't thinking counting variable for some reason.  So is 
>> 'for c in', one or more of key words that Python understands that a 
>> loop is here and to actually trigger counting in a loop? Does it 
>> start with a 1 or 0 internally to do this?

In the case of a for loop it doesn't count as such.
It takes each value from a sequience and applies it to the
loop variable. Personally I think it wouyld have read better
if they called it "foreach" so your loop would look like

foreach char in 'abcd':

or

foreach item in [1,2,3,4]:

etc...

But they didn't so we are stuck with for.

>> I also realized a mistake I may have made - maybe I confused 'for c 
>> in'

>> while c in 'abcd':

This is completely different.
In this case we can clarify it by adding some parentheses:

while (c in 'abcd'):

the test is all of the bit in parens. And the test is a test of 
whether
c is in the string or not. Python does not modify the variable 'c' in
this case, that only happens with a for loop.

You can read more about the various python loop structures
in the loops topic of my tutorial.


-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/




More information about the Tutor mailing list