[Tutor] Generic For Loop

Alan Gauld alan.gauld at btinternet.com
Thu Oct 13 06:23:32 CEST 2011


On 13/10/11 01:41, Max S. wrote:
> I've been doing some research into C++, and I've noticed the for loops.

If you are trying to program in Python you should probably research 
Python rather than C++. Any tutorial will provide information about for 
loops...

> Is there a way to use the C++ version of the loops instead of the Python
> one?  For example, I believe that the Python syntax would be:
> for a=1, a < 11, a += 1:
>      print(a)
> print("Loop ended.")

for a in range(1,11): print( a )

> if the 'for' keyword did it's function as in C++, Actionscript, or most
> other programming languages.  Is there a way to do this?

Of course, however...

Its generally better to think of the Python for lop as being a foreach 
loop. It iterates over a collection.

The C style for loop is a much more primitive loop and is really just a 
piece of syntactic sugar to implement a while loop:

a = 1
while a < 11:
    a += 1
    # loop body here

Because it is just a loosely disguised while loop you can put 
arbitrarily complex expressions into it and to replicate those in Python 
you need to use the while loop. But generally that kind of obfuscation 
in C++ is better avoided anyway.

The Python style loop is much more powerful than C's in its ability to 
iterate over lists, dictionaries, strings, files and any other iterable 
object. C++ introduces iterators as a library class to address this and 
enable foreach style processing, but at the expense of loop speed.

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



More information about the Tutor mailing list