如何将含range函数的Python for循环转换为while循环?
问题:将for循环转换为while循环
原for循环代码:
sum = 0 for i in range (10,0,-1): sum = sum +1 print(i,sum)
你尝试的代码存在几个问题:
- 初始值
i=1与原循环的遍历顺序相反,原循环是从10递减到1,你这里是从1递增 while i in range(10,0,-1)的判断方式效率低且逻辑不符合预期,range生成的是10、9...1的序列,你递增i会导致循环到11才停止,完全偏离原逻辑- 缺少原循环中
sum的累加逻辑
正确的while循环实现
要对应原for循环的逻辑,我们需要模拟range(10,0,-1)的行为:从10开始,每次减1,直到i大于0时停止循环。代码如下:
sum = 0 i = 10 while i > 0: sum += 1 print(i, sum) i -= 1
这段代码的执行逻辑和原for循环完全一致:
- 初始化
sum为0,i为10(对应range的起始值) - 循环条件
i > 0对应range的结束值0(不包含0) - 每次循环后
i -= 1对应range的步长-1 - 保留原有的
sum累加和打印逻辑
注:for循环是比while循环更优的解决方案。
内容的提问来源于stack exchange,提问作者ATTILA THE NUN
相关产品推荐
相关产品推荐

