鱼C论坛

 找回密码
 立即注册
查看: 2368|回复: 8

一段很简单的代码问题,希望好心人帮忙解答一下。

[复制链接]
发表于 2016-2-4 13:59:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新人求助,关于下面两段代码,为什么结果不相同?

1.
>>> fs=[]
>>> for i in range(1,4):
...     def f():
...             return i*i
...     fs.append(f())
...
>>> fs
[1, 4, 9]


2.
>>> def count():
...     fs = []
...     for i in range(1, 4):
...         def f():
...              return i*i
...         fs.append(f())
...     return fs
...
>>> count()
[1]



我认为两段代码的答案都应该是1 4 9的list,不明白的地方是为什么第二段代码只返回了一个1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-2-4 14:01:07 | 显示全部楼层
不好意思,我的格式粘贴过来好像有点问题,我是在linux下的python交互运行的,所以每行的...应该是在缩进一格的,我稍后再重发一次代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-4 14:04:19 | 显示全部楼层
1.
def count():
     fs = []
     for i in range(1, 4):
         def f():
              return i*i
         fs.append(f())
     return fs

count()
[1]

2.
fs=[]
for i in range(1,4):
     def f():
             return i*i
     fs.append(f())

fs
[1, 4, 9]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-4 14:06:30 | 显示全部楼层
另外谁能跟我说一下,我看其他人发代码好像都有专门的格式一样,每行前面带有1234那样的,怎么样才能发成那样的呢?谢谢了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-4 14:14:18 | 显示全部楼层
我试了一下,没有问题。
  1. >>> def count():
  2.         fs = []
  3.         for i in range(1, 4):
  4.                 def f():
  5.                         return i * i
  6.                 fs.append(f())
  7.         return fs

  8. >>> count()
  9. [1, 4, 9]
复制代码

很有可能你的return fs缩进不正确。
另,发代码格式,使用输入框上面的<>,点击<>将代码输入到或copy到这里面。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-4 14:28:49 | 显示全部楼层
Screen Shot 2016-02-04 at 2.23.29 PM.png
感谢冬雪,我又试了一次,确实是返回三个数了,不过我之前的记录是有截图的,我不知道截图称没成功发上来,可以看到我是刚刚登陆到交互模式的,所以真的很奇怪。。。 不过还是很感谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-4 14:40:54 | 显示全部楼层
我知道原因了,因为我那段代码是从网上拷贝的,然后修改了其中一个地方,复制进去的缩进是按照每行四个空格,而我的习惯是一个tab,return那行是我自己输入的,所以说造成了上面的错误,因此大家一定不要懒啊,代码都要手打。

点评

我很赞同!: 5.0
我很赞同!: 5
恩, 严格遵循PEP规则~  发表于 2016-2-4 14:42
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-2-4 15:16:17 | 显示全部楼层
同求如何发代码发成代码那种格式啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-19 13:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表