找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3375|回复: 7

[求助] 为什么返回None

2

主题

9

帖子

9

积分

贫民

积分
9
chengzhang2 发表于 2017-9-28 17:14:30 | 显示全部楼层 |阅读模式
请教一下,为什么返回的是None...
def add_number(num):
    answer = []
    return answer.append(num)

print(add_number(3))



回复

使用道具 举报

0

主题

30

帖子

30

积分

贫民

积分
30
胡扶林 发表于 2017-9-28 17:18:44 | 显示全部楼层
answer.append(num)函数返回的就是None 你应该return answer
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
chengzhang2  楼主| 发表于 2017-9-29 08:37:16 | 显示全部楼层
原来,list.append(x),就是给list添加x,我一直以为可以用这个给变量赋值:L = list.append(x),原来这是不可以的。
还有为什么answer.append(num)为什么返回值就是None呢?为什么不是[num]呢,我前面写了answer=[],谢谢告知
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
chengzhang2  楼主| 发表于 2017-9-29 08:37:59 | 显示全部楼层
胡扶林 发表于 2017-9-28 17:18
answer.append(num)函数返回的就是None 你应该return answer


原来,list.append(x),就是给list添加x,我一直以为可以用这个给变量赋值:L = list.append(x),原来这是不可以的。
还有为什么answer.append(num)为什么返回值就是None呢?为什么不是[num]呢,我前面写了answer=[],谢谢告知
回复 支持 反对

使用道具 举报

0

主题

30

帖子

30

积分

贫民

积分
30
胡扶林 发表于 2017-9-29 09:20:44 | 显示全部楼层
append函数本身就没有返回值 这个是对list本身进行操作 python定义的这个函数本身就没有设置返回值 没有设置返回值就相当于返回None
回复 支持 反对

使用道具 举报

2

主题

9

帖子

9

积分

贫民

积分
9
chengzhang2  楼主| 发表于 2017-9-29 12:33:28 | 显示全部楼层
胡扶林 发表于 2017-9-29 09:20
append函数本身就没有返回值 这个是对list本身进行操作 python定义的这个函数本身就没有设置返回值 没有设 ...

虽然还是有点懵,但还是谢谢你
回复 支持 反对

使用道具 举报

1

主题

19

帖子

19

积分

贫民

积分
19
yeshi208 发表于 2017-9-29 16:32:11 | 显示全部楼层
chengzhang2 发表于 2017-9-29 12:33
虽然还是有点懵,但还是谢谢你

二楼正解,learning python里面有提及。
  1. Don’t expect results from functions that change objects in place. We encountered
  2. this one earlier, too: in-place change operations like the list.append and
  3. list.sort methods introduced in Chapter 8 do not return values (other than
  4. None), so you should call them without assigning the result. It’s not uncommon for
  5. beginners to say something like mylist = mylist.append(X) to try to get the result
  6. of an append, but what this actually does is assign mylist to None, not to the modified
  7. list (in fact, you’ll lose your reference to the list altogether).
复制代码
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
follow_me 发表于 2017-10-20 15:25:54 | 显示全部楼层
yeshi208 发表于 2017-9-29 16:32
二楼正解,learning python里面有提及。

def add_number(num):
    answer = []
    answer.append(num)
    return answer

print(add_number(3))
回复 支持 反对

使用道具 举报

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

本版积分规则

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