嵌套的 for 循环不提供所有输出

nested for loop doesn't give all outputs

我应该得到 16 个输出,其中每个 for 循环的每个值都相互相乘,但由于某种原因我只得到 4 个输出,其中只有 [=11= 的 4000 值] 乘以 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

        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()

您仅获得 4 个输出,因为您的 print() 外部 第二个循环。欢迎来到 python 缩进噩梦:)

你必须重新安排你的代码,先声明最后print:

def main():
    for i in range(0,4):
        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
            print("The year with depth",D,"and K as",K,"is",K*D)

此外,一种 pythonic 的方式是:

for D in (2, 4, 5.5, 10):
    for K in range(1000, 5000, 1000):
        print("The year with depth",D,"and K as",K,"is",K*D)

顺序很重要,您的打印语句必须在内部 for 循环中。

def main():
        for i in range(0,4):

                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
                        print("The year with depth",D,"and K as",K,"is",K*D)

main()