找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2698|回复: 5

[求助] 求助!

8

主题

16

帖子

16

积分

贫民

积分
16
suiyibale 发表于 2017-1-12 23:46:37 | 显示全部楼层 |阅读模式
我今天在学函数,写了个代码把自己绕进去了
代码是这样的:
def change(mylist):
    mylist=mylist+[1,2,3,4]
   
return
mylist=[10,20,30]
change(mylist)
print(mylist)


输出的结果是:
[10, 20, 30]

但是我改了一下!
def change(mylist):
    mylist+=[1,2,3,4]
   
return
mylist=[10,20,30]
change(mylist)
print(mylist)
输出的结果就变成:
[10, 20, 30, 1, 2, 3, 4]


这是为什么呢?
回复

使用道具 举报

2

主题

7

帖子

7

积分

贫民

积分
7
qianmosolo 发表于 2017-1-13 11:04:04 | 显示全部楼层
“+”是连接操作
“+=” 是连接替换操作
回复 支持 反对

使用道具 举报

0

主题

20

帖子

20

积分

贫民

积分
20
zxy 发表于 2017-1-13 11:21:05 | 显示全部楼层
这里涉及到变量作用域的问题,第一个相当于mylist又是一个新的变量把函数里面的mylist+[1,2,3,4]赋给它,第二个是直接修改mylist的值了。
回复 支持 反对

使用道具 举报

8

主题

16

帖子

16

积分

贫民

积分
16
suiyibale  楼主| 发表于 2017-1-13 12:01:54 | 显示全部楼层
qianmosolo 发表于 2017-1-13 11:04
“+”是连接操作
“+=” 是连接替换操作

可是第一个为什么进行了连接,在结果中却没有显示呢?为什么不是【10,20,30,1,2,3,4】呢?
回复 支持 反对

使用道具 举报

8

主题

16

帖子

16

积分

贫民

积分
16
suiyibale  楼主| 发表于 2017-1-13 12:04:55 | 显示全部楼层
zxy 发表于 2017-1-13 11:21
这里涉及到变量作用域的问题,第一个相当于mylist又是一个新的变量把函数里面的mylist+[1,2,3,4]赋给它,第 ...

好像有点明白了,谢谢
回复 支持 反对

使用道具 举报

8

主题

16

帖子

16

积分

贫民

积分
16
suiyibale  楼主| 发表于 2017-1-13 12:05:24 | 显示全部楼层
qianmosolo 发表于 2017-1-13 11:04
“+”是连接操作
“+=” 是连接替换操作

好像有点明白了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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