py问题求解 关于列表

img


最后那个为什么和上面的不一样啊
有没有hxd解释一下捏
为什么不一样啊

最下面是使用等号赋值,最上面是使用列表的append方法,这两者是不一样的。
用等号赋值等于是把两个列表相加后产生的一个新列表赋值给ls,所以程序会把它定义为一个新的局部变量,但等号右边又出现一个ls,程序就会认为这个ls没有定义过。
而用append方法,程序改变的是变量ls所对应的列表本身,并没有对ls改变赋值。ls的值不过是列表所在的一个内存地址。因为没有重新赋值,只是读取ls里的内存地址,程序会认为ls就是调用的全局变量,所以也不需要声明global。

最后一个,ls是从形参传递进来的

最后一个如果你加上 print(ls) 或者 return ls 也能得到你想要的结果,这种最好还是把变量搞清楚吧,变量是全局的还是局部的,参数使用的时候尽量换一个吧。