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

时间:2018-05-21 15:45:38

标签: python for-loop if-statement nested-loops

我应该得到16个输出,其中来自每个for循环的每个值相互相乘,但由于某种原因,我只得到4个输出只有4000 {{{{ 1}}与K的所有值相乘。有人可以告诉我哪里出错了吗?

D

3 个答案:

答案 0 :(得分:2)

顺序很重要,你的print语句必须在内部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()

答案 1 :(得分:1)

你必须重新安排你的代码,第一次声明是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)

答案 2 :(得分:-1)

您只获得4个输出,因为您的print() 第二个循环。欢迎来到python indentation噩梦:)