欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个有趣的python小问题

程序员文章站 2022-07-15 07:58:10
...

今天逛我大CSDN时发现了一个很有趣的小问题,拿出来与大家分享一下。

def f(x, l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)
        
f(2)
f(3, [3,2,1])
f(3)

在jupyter上运行以上代码,会出现什么结果,你们猜一下。

A:

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 4]

B:

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]

选一下吧。

正确答案是B,为什么呢。

首先,这三个函数是放在一起的,而不是分别运行的啊,这一点要注意。

其次,第二个函数,没有在第一个l列表的基础上进行添加操作,是因为人家传了第二个参数,而第三个则默认还是使用第一个函数建立的列表,所以会出现这种情况。

其实,我感觉这个小问题很值得研究啊,虽然不知道有哪些可以研究的(希望路过的大神不吝赐教)。