永发信息网

廖雪峰的python教程有一点地方没看明白,求指导

答案:2  悬赏:40  手机版
解决时间 2021-02-26 08:38
def add_end(L=None):
if L is None:
L = []
L.append('END')
return L

为什么当那个None是[ ]时就会一直往里面加END,而用None就不会

我觉得return的L是全局变量,而传入的参数L是局部变量,为什么会累加?

def add_end(L=None):
if L is None:
L = []
L.append('END')#为什么这一句缩不缩进结果都一样?我觉得应该缩进
return L
最佳答案
题主贴了两遍函数,似乎是一样的,下面就分析这一个版本:
def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L1. 不明白题主说的“一直往里面加END”是怎么回事。函数里既没有循环也没有递归,怎么会“一直”加。。。
2. 关于默认参数,其作用是:使 add_end()的返回值 与 add_end(None)的返回值相同。因此下面不再单独分析输入0个参数的情形。
3. “return的L是全局变量,而传入的参数L是局部变量”这个说法很奇怪。当传入的L是None时,该函数的会新生成一个list,向其中加入一个字符串‘END’,并返回这个新生成的list。而当传入的L是一个list,哪怕是空list时,该函数的作用是向传入的这个L新加一个元素'END',并返回传入的那个L。
4. L.append('END')这一行,如果缩进的话:当函数传入的L不是None时,就不会向传入的这个L新加一个元素'END'。因此缩进与不缩进的效果是不一样的。
全部回答
这是他的网站地址:www.liaoxuefeng.com 这是python专栏(有python2.7,python3,可供选择):www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000 基础学习的话,够用了,但没有太多的习题供练习,只是在每个章节的最后,会提出一些小问题,可以自己练习下,也可以留言请教。 其实主要还得靠自己多写,多练。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
球的周长怎么求???
0.999999999循环=1吗
singbet经营总部在哪里
鄂城区鄂州易游天下国旅(武昌大道店)怎么去啊
称帝的皇帝,是不是百姓就不能跟他一个姓了?
LG带烧烤功能的微波炉的三个档(烤鸡、烤鱼、
为什么网页flash插件总显示空白?
【几个一百万是一亿】多少个一百万是一亿?了
河南工业大学莲花街校区-学生公寓B区03座这个
陀螺里的数学奥秘 1.我需要四个手做的陀螺持
华帮实业我想知道这个在什么地方
魅蓝2屏幕锁了
喀什到麦盖提多少公里
为了加快优良种牛的繁殖速度,科学家采用了以
康佳液晶电视,屏显模式里的智能模式
推荐资讯
为什么王祖蓝老戴一个泳帽
如何打蝴蝶结视频
酷派手机开机出现加密失败,重置手机也没得用
深井烧鹅仔餐馆怎么去啊,有知道地址的么
如何快速通便,解决便秘?不要吃香蕉啊喝蜂蜜
改错:If carefully doing,the experiment wi
喜市多珠江新城喜星便利店地址有知道的么?有
铸铁茶壶适合煮什么茶
我领导的孩子在北京的STKT参加了他们的励齐女
蕉叶坑地址在什么地方,想过去办事
材料一:汉兴,接秦之弊,民亡藏盖。自天子不
ios苍穹变手游果盘跑环
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?