[Zope] Do While Loop Equivalent

Dylan Reinhardt zope@dylanreinhardt.com
21 May 2003 23:25:14 -0700


By "module" I assume you mean a Python product?

Python has a while statement:

----------

while test:
    action

----------

Honestly, though, there's almost no good reason to use it.  :-)

While does little that couldn't be handled better by a for statement or
a list comprehension.  Mostly it's there for buzzword compliance.

For example, if you've got a dictionary of records, it's quite easy to
step through each one and perform some action:

---------

for record in records.keys():
   do_something(records[record])

---------

Or use a list comprehension:

---------

[do_something(records[record]) for record in records.keys()]

---------

When you've got options like that why would you prefer:

---------

rst_size = len(records.keys())
i = 0
while i < rst_size:
    do something(records[i])
    i += 1

---------

If you're still having trouble seeing how to do what you need to, it
would be helpful to know a bit more about what you're attempting, what
you've tried, and what isn't working about your solution.

HTH,

Dylan



On Wed, 2003-05-21 at 12:55, McDonnell, Larry wrote:
> Hi,
> 
> I have been searching for a while but I am coming up empty. I am writing a
> module that needs to create a block of records in the db so they can be
> updated at a later time. In the good old days, I would use a do while loop
> (do something while x < 10). How can this be done? And as always any
> pointers will be appreciated, thanks.
> 
> 
> Larry McDonnell
> 
> Proton Energy Systems
> 10 Technology Drive
> Wallingford, CT 06492
> (203) 678-2181
> Email:lmcdonnell@protonenergy.com
> www.protonenergy.com
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )