You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python嵌套for循环未输出全部预期结果,请求排查错误

问题排查与修复

你的问题核心是缩进错误,导致内层循环的K值只保留了最后一次的结果,才和D值配对输出。

错误原因分析

看你原代码的缩进结构:

def main(): 
    for i in range(0,4): 
        for j in range(0,4): 
            if j==0: K=1000 
            elif j==1: K=2000 
            elif j==2: K=2500 
            else: K=4000 
        # 这里的代码在内层for j循环结束后才执行!
        if i==0: D=2 
        elif i==1: D=4 
        elif i==2: D=5.5 
        else: D=10 
        print("The year with depth",D,"and K as",K,"is",K*D) 
main()

内层的for j循环会把K依次赋值为1000、2000、2500、4000,但循环结束后K固定为最后一次的4000。然后才执行if i判断得到D,再print一次。所以外层for i循环4次,每次都只输出K=4000和对应的D,总共4组结果,完全没实现两两配对的逻辑。

修复后的代码

你需要把if i的判断和print语句缩进内层for j循环的内部(或者把D的判断提到外层循环,减少重复计算),这样每次j循环(每个K值)都会和当前的i对应的D值配对输出:

def main(): 
    for i in range(0,4): 
        # 先根据i确定当前的D值,每个i循环只计算一次,更高效
        if i==0: 
            D=2 
        elif i==1: 
            D=4 
        elif i==2: 
            D=5.5 
        else: 
            D=10 
        for j in range(0,4): 
            if j==0: 
                K=1000 
            elif j==1: 
                K=2000 
            elif j==2: 
                K=2500 
            else: 
                K=4000 
            # 每次j循环都输出当前K和D的组合
            print("The year with depth",D,"and K as",K,"is",K*D) 
main()

修复效果

现在运行代码会输出16组结果,覆盖所有K值(1000、2000、2500、4000)和D值(2、4、5.5、10)的两两组合乘积,完全符合你的预期。

内容的提问来源于stack exchange,提问作者user130824

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:27:44