for loop
loritsch at gmail.com
loritsch at gmail.com
Sun Dec 12 14:23:32 EST 2004
houbahop wrote:
> Hello,
> I have seen a lot of way to use the for statement, but I still don't
know
> how to do:
>
> for i=morethanzero to n
> or
> for i= 5 to len(var)
>
> of course I kno wthat I can use a while loop to achieve that but if
this is
> possible whith a for one, my preference goes to the for.
>
> regards,
> Dominique.
I think the key point that hasn't been made here is what a for
statement is really doing in python...
>From the online documentation:
"The for statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object"
Neither of the statements:
> for i=morethanzero to n
> for i= 5 to len(var)
create a sequence or iterable object, and that is why they don't work.
That is why previous posts in this thread have suggested using range(),
xrange(), etc. Because they create a sequence or iterable object.
When first using python, I recall that this distinction was not clear
to me, as I was used to a more traditional for statement (as in
C/C++):
for ( initialise ; test ; update )
Essentially, python's for statement is more like a foreach statement in
many other languages (Perl, C#, etc). These statements essentially
reduce the traditional form above to what many consider a more readable
form:
foreach item in collection:
In order to transform the tradition for statement into this more
readable form, each language requires that their collections being
iterated over satisfy a precondition defined by the language (in python
this precondition is that the collection is iterable).
While this restriction may seem a little strange to people who are used
to the more traditional for statement form, the result of this approach
is often a more readable and clear statement.
Regards,
Michael Loritsch
More information about the Python-list
mailing list