Python初学者求助:修改while循环条件解决无限循环生成指定列表
问题分析
你当前代码里的循环判断条件while i >= 0会触发无限循环:循环变量i初始值为0,每次循环执行i +=1后数值持续增大,永远满足「大于等于0」的判断逻辑,程序会一直向列表追加2的更高次幂,永远不会退出循环,也无法得到你需要的固定长度列表。
具体修改方式
只需要把原来的无限循环条件替换为i <= 6即可,修改后的完整代码如下:
list_ = [] i = 0 while i <= 6: list_.append(2 ** i) i += 1 print(list_)
修改逻辑说明
- 你需要的目标列表元素为
1、2、4、8、16、32、64,对应数学计算式是2的0次幂到2的6次幂,正好匹配循环变量i从0到6的取值范围 - 当循环执行到
i=6时,会向列表追加最后一个目标值2**6 = 64,之后执行i +=1让i变为7,此时不再满足i <=6的判断条件,循环自动终止 - 运行修改后的代码,最终打印的
list_结果为[1, 2, 4, 8, 16, 32, 64],完全符合预期。
内容的提问来源于stack exchange,提问作者Nick Tsougy
相关产品推荐
相关产品推荐

