嵌套的 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()
我应该得到 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()