作者: 機械伯爵
日時: 2008/4/9(21:30)
 ああ、見つかった見つかった。

 プログラミング日記
 http://d.hatena.ne.jp/morchin/searchdiary?word=*%5BPython%5D

<再代入を含む>
>>> for i in range(5):
...   print i, i*2
...
0 0
1 2
2 4
3 6
4 8

<再代入を含まない>
>>> def foo(a, b):
...   print a, a*2
...   if a==b:  # 再帰の終了条件
...     return None
...   else:
...      foo(a+1, b)
...
>>> foo(0, 4)
0 0
1 2
2 4
3 6
4 8

 ここまでがオリジナル。
 これ、printが関数でないと、書き難いな(今Macで書いてるので、
Py3kが使えない……)

>>> def px(a):print a, a*2
... 
>>> k = iter(range(5))
>>> try:
...   while 1:
...     px(k.next())
... except StopIteration:
...   pass
... 
0 0
1 2
2 4
3 6
4 8                                                                                      
>>>

 まぁ、イテレータが「内部が変わる」となれば、意味は
無いのだけど……

 /機械伯爵/