Georg Brandl <[EMAIL PROTECTED]> wrote: > Steven D'Aprano wrote: > > On Wed, 05 Apr 2006 16:15:12 +0200, Georg Brandl wrote: > > > >> [EMAIL PROTECTED] wrote: > >>> hi John, > >>> Python doesn't provide for loop like C / C++ but using Range() or > >>> Xrange() you can achive all the functionalities of the C for loop. > >> > >> Not quite. > > > > Care to explain what the differences are, or shall we guess? > > C's for is much more powerful. > > for(a; b; c) { d } translates to > > a > while b > d > c > > which can't be replaced by a simple > > for i in range(...)
No, but it can be easily replaced by: # factoring out the loopstructure... def gotcha(): a while b: yield c # ...from the loopbody for i in gotcha(): d or several variations thereof. In C++, I almost half-heartedly replace most of Python's generators' power with C++'s templated iterators, but when I program in C I find myself really straightjacketed these days in NOT being able to pull out the "loopstructure" as I can in Python (and, about halfway, in C++). Alex -- http://mail.python.org/mailman/listinfo/python-list