鱼C论坛

 找回密码
 立即注册
查看: 2461|回复: 4

[已解决]python第21讲课后题有些困惑,求解答,谢谢!!

[复制链接]
发表于 2016-9-28 09:18:18 | 显示全部楼层 |阅读模式

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

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

x
  1. def make_repeat(n):
  2.         return lambda s : s * n

  3. double = make_repeat(2)
  4. print(double(8))
  5. print(double('FishC'))
复制代码

以上是小甲鱼的代码,我把中间的lambda换成了函数,然后就不行了,不知道为什么,请大家帮忙看看。我自己的代码和错误信息如下:
  1. def make_repeat(n):
  2.     def a (s):
  3.         return s * n
  4.         
  5. double = make_repeat(2)
  6. print(double(8))
  7. print(double('FishC'))
复制代码

错误信息:
Traceback (most recent call last):
  File "F:\python\code\try.py", line 9, in <module>
    print(double(8))
TypeError: 'NoneType' object is not callable

谢谢大家!!!
另外,刚才看到python区也可以提问,昨天在新手交流也发了同样的帖子,如违反版规,麻烦版主将新手乐园我的帖子删除,谢谢!!
最佳答案
2016-9-28 10:20:14
def make_repeat(n):   这个函数没有返回值、、、
下面是我改的 你可以参考哈

  1. def make_repeat(s,n):   
  2.     return s*n
  3.            
  4. double = make_repeat(8,2)
  5. double_str=make_repeat('FishC',2)
  6. print(double)
  7. print(double_str)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-28 10:20:14 | 显示全部楼层    本楼为最佳答案   
def make_repeat(n):   这个函数没有返回值、、、
下面是我改的 你可以参考哈

  1. def make_repeat(s,n):   
  2.     return s*n
  3.            
  4. double = make_repeat(8,2)
  5. double_str=make_repeat('FishC',2)
  6. print(double)
  7. print(double_str)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-28 11:01:10 | 显示全部楼层
玄天宗 发表于 2016-9-28 10:20
def make_repeat(n):   这个函数没有返回值、、、
下面是我改的 你可以参考哈

首先谢谢你可以帮我解答!
然后看懂你的代码了,也意识到了自己的问题。我写这个代码的时候,是想要在make_repeat()这个函数下再用一个函数,现在看了你的代码后觉得自己以前关于这个代码想法是多余的。
再次谢谢你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-28 14:37:16 | 显示全部楼层
在你的程序中加上一个return就可以了。
  1. def make_repeat(n):
  2.     def a (s):
  3.         return s * n
  4.     return a
  5.         
  6. double = make_repeat(2)
  7. print(double(8))
  8. print(double('FishC'))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-9-30 16:59:59 | 显示全部楼层
冬雪雪冬 发表于 2016-9-28 14:37
在你的程序中加上一个return就可以了。

哦,对,两个函数都应该有返回值,里面的函数有返回值,外面的函数忘记了,学习了,谢谢您!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-23 01:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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