a good explanation

rainbow.cougar at gmail.com rainbow.cougar at gmail.com
Fri May 26 15:53:59 CEST 2006

Nick Craig-Wood wrote:
> mik3 <mik3l3374 at hotmail.com> wrote:
> >  So he has written his first program in python and i have roughly toook
> >  a glance at it and saw what he did.. i pointed out his "mistakes" but
> >  couldn't convince him otherwise. Anyway , i am going to show him your
> >  replies..
> You might want to show him this too...if you happen to need cnt in the
> loop, this is what you write
>   files = [a,b,c,d]
>   for cnt, fi in enumerate(files):
>      do_something(cnt, fi)
> --
> Nick Craig-Wood <nick at craig-wood.com> -- http://www.craig-wood.com/nick

Like many things in Python, measurement is the key, Being an old C
coder. I quite often write:

while i<end_condition:

and try to be a good pythonesita translate it to:
for something in stuff:
   #stuff code

A few weeks ago I found myself manipulating a list of lists that I
wanted to use as columns and discovered that in:

  def resort(list,d2list):
    while (i < d2len):
    for row in d2list:

    return newlist

ran as fast with the while as the for.  However, for 'elegance', and to
stick to python style, I kept the for.

Something that is being missed is the idea of changing conditions. A
for loop assumes known boundaries.

def condition_test():
  # check socket status
  # return true if socket good, false otherwise

while condition_test():
   # do stuff

allows the loopiing code to react to changing conditions. Which of
couse is why we like to keep while loops around ;-0


More information about the Python-list mailing list