[英]nested for loop doesn't give all outputs
我應該得到16個輸出,其中每個for循環的每個值彼此相乘,但是由於某種原因,我只得到4個輸出,其中僅4000的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
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循環中。
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()
您必須重新排列代碼,首先聲明最后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)
您僅獲得4個輸出,因為您的print()
在第二個循環之外 。 歡迎來到python縮進夢night :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.