我正在做Python编程的书后练习: Comp Sci入门:
for i in [1,3,5,7,9]:
print(i, ":", i**3)
print(i)这将打印出来
1:1
3:27
5:125
7:343
9:729
9我的问题是,为什么它要打印额外的9?最后一次循环打印不是9:729吗?它一定是和
print(i, ":", i**3)因为如果我放进去:
for i in [1,3,5,7,9]:
print(i)它只是打印出来的
1
3
5
7
9提前感谢,因为我没有其他人帮助我!:)
发布于 2013-01-15 08:28:20
在python for循环中,循环的“主体”是缩进的。
因此,在您的例子中,print(i, ":", i**3)就是“主体”。它将为i的每个值打印i, ":", i**3,从1开始到9结束。
在循环执行时,它会将i的值更改为列表中的下一项。
一旦循环终止,它将继续下一行代码,这完全独立于for循环。因此,在for循环之后有一个命令,即print(i)。由于i最后设置为9,因此此命令基本上表示print(9)。
你想要的是:
for i in [1,3,5,7,9]:
print(i, ":", i**3)发布于 2013-01-15 08:20:40
最后一行的print(i) ..........
发布于 2013-01-15 08:21:14
分配给i的最后一个值是9,因此您的最后一行引用了循环中发生的这个值分配。虽然9:729是最后一个打印出来的东西,但它不是最后一个作业。
编辑:
为什么不打印这样的内容: 1:1 1 3:27 3 5:125 5 7:343 7 9:729 9?
如果您的代码缩进如下所示,它将打印以下内容:
for i in [1,3,5,7,9]:
print(i, ":", i**3)
print(i)最后一行没有缩进导致它落在for循环之外。
https://stackoverflow.com/questions/14329176
复制相似问题