正在编写python for循环?

tin*_*lyx 2 python flow-control

我想知道,出于教育目的,是否可以在python中重写所有for循环作为while循环.从理论上讲,if和while是最小的流量控制集.

在SO周围搜索显示关于基于范围的循环的问题循环转换为python中的while循环,这显然可行,因为开始和结束索引被暴露.其他形式的for循环怎么样?例如,以各种形式循环遍历列表呢?

Ami*_*ory 5

是的,有可能这样做,但这可能不是一个好主意(有些人可能会说它是unpythonic).

for循环遍历支持迭代器协议的某些东西时,您可以显式地模仿其动作,并将其转换为while循环.例如,

l = [1, 2, 3]                                                                                                                                                                                          

it = iter(l)                                                                    
while True:                                                                     
    try:                                                                        
        print next(it)                                                       
    except StopIteration:                                                       
        break                  
Run Code Online (Sandbox Code Playgroud)

我认为这非常难看:-)