Python如何终止嵌套循环死循环 实现step0执行1次step1执行5次需求
问题根因
- 变量名冲突:外层
for循环的变量x和内层while、内层for循环的x重名,内层for循环执行结束后x最终值为4,返回while x >= 0的判断时永远为真,触发死循环 - 逻辑结构错误:原代码把
step0的打印放在了外层for循环内,会重复执行5次,不符合仅执行1次的要求
修复后代码
# 先单独执行step0,保证仅运行1次 print("step0") # 控制step1执行5次,变量名用i避免和内层冲突 for i in range(5): print("step1") # 每轮step1后输出sub-step序列 for x in range(5): print(" sub-step", x)
运行结果
step0 step1 sub-step 0 sub-step 1 sub-step 2 sub-step 3 sub-step 4 step1 sub-step 0 sub-step 1 sub-step 2 sub-step 3 sub-step 4 step1 sub-step 0 sub-step 1 sub-step 2 sub-step 3 sub-step 4 step1 sub-step 0 sub-step 1 sub-step 2 sub-step 3 sub-step 4 step1 sub-step 0 sub-step 1 sub-step 2 sub-step 3 sub-step 4
逻辑说明
- 把step0的打印逻辑移出循环,确保仅执行1次
- 删除冗余的while判断,直接用外层for循环控制step1的执行次数为5次
- 外层循环变量使用
i,避免和内层sub-step的循环变量x重名,不会出现判断条件永远成立的问题
内容的提问来源于stack exchange,提问作者Mary
相关产品推荐
相关产品推荐

