首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python循环:额外打印?

Python循环:额外打印?
EN

Stack Overflow用户
提问于 2013-01-15 08:17:58
回答 3查看 168关注 0票数 2

我正在做Python编程的书后练习: Comp Sci入门:

代码语言:javascript
复制
for i in [1,3,5,7,9]:
    print(i, ":", i**3)
print(i)

这将打印出来

代码语言:javascript
复制
1:1
3:27
5:125
7:343
9:729
9

我的问题是,为什么它要打印额外的9?最后一次循环打印不是9:729吗?它一定是和

代码语言:javascript
复制
print(i, ":", i**3)

因为如果我放进去:

代码语言:javascript
复制
for i in [1,3,5,7,9]:
   print(i)

它只是打印出来的

代码语言:javascript
复制
1
3
5
7
9

提前感谢,因为我没有其他人帮助我!:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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)

你想要的是:

代码语言:javascript
复制
for i in [1,3,5,7,9]:
    print(i, ":", i**3)
票数 3
EN

Stack Overflow用户

发布于 2013-01-15 08:20:40

最后一行的print(i) ..........

票数 2
EN

Stack Overflow用户

发布于 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?

如果您的代码缩进如下所示,它将打印以下内容:

代码语言:javascript
复制
for i in [1,3,5,7,9]:
    print(i, ":", i**3)
    print(i)

最后一行没有缩进导致它落在for循环之外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14329176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档