[Tutor] Losing the expressiveness of C's for-statement?/ RESEND with example
Stephen McInerney
spmcinerney at hotmail.com
Tue Aug 7 11:24:25 CEST 2007
(Question as below)
Sorry I meant to pick a tangible example to focus the discussion:
This one cannot be (easily) translated to use Python's range() operator
for (i=30000; i>0; i=i/2) { ... }
So do you need to know a whole armory of other functions to use
to generate iterators, or just translate to a while-loop already?
Stephen
>From: "Stephen McInerney" <spmcinerney at hotmail.com>
>To: tutor at python.org
>Subject: Losing the expressiveness of C's for-statement?
>Date: Tue, 07 Aug 2007 02:18:16 -0700
>
>Hi all,
>
>As the Python doc says: "The for statement in Python differs a bit from
>what you may be used to in C or Pascal. Rather than giving the user the
>ability to define both the iteration step and halting condition (as C),
>Python's for statement iterates over the items of any sequence (a list or a
>string)."
>
>This is much poorer than C/C++, and does not allow for the step action to
>be multiple actions, fn calls etc. - not straightforwardly anyway. (don't
>take that as a challenge)
>- I know how to migrate to a while-loop, but I lament losing the very
>compact expressiveness of:
>for (node=start; value<threshold && node!=end; node=node->next) { ... }
>- I figure the straightforward answer will be "use a while-loop, put the
>iteration step at the end".
>- the fancy showoff answer will probably involve a funky iterator with
>side-effects, or returning tuples.
>- what if the loop iteration step involves variables from within the
>loop-body (e.g. as in quicksort stepsize);
>- what I'm trying to drive at here is the general solution of least
>idiomaticity, not of greatest language-specific cleverness
>
>Any comments or article links? Also, it would be useful to improve the
>Python tutorial on this.
>Since this is one area where Python is (syntactically) inferior to
>C/C++/Java.
>
>Thanks,
>Stephen
_________________________________________________________________
Find a local pizza place, movie theater, and more
.then map the best route!
http://maps.live.com/default.aspx?v=2&ss=yp.bars~yp.pizza~yp.movie%20theater&cp=42.358996~-71.056691&style=r&lvl=13&tilt=-90&dir=0&alt=-1000&scene=950607&encType=1&FORM=MGAC01
More information about the Tutor
mailing list