刷题(十)

题目

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

f(2)  
f(3, [3, 2, 1]) 
f(3) 

分析

由于函数f的默认参数 l 是列表,因此是可变数据类型,当f(2)调用后f()后,l变为[0, 1],当f(3, [3, 2, 1])调用时,由于使用的是自定义的参数,所以这次默认参数 l 的值不变,仍是[0, 1],当使用f(3)调用后,由于没有传自定义参数,因此使用默认参数 l = [0, 1],所以最后的结果是[0, 1, 0, 1, 4]

结果

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]
posted @ 2020-05-02 15:41  cnhkzyy  阅读(133)  评论(0编辑  收藏  举报