面试题汇总

1、题目:

  a=1,b=3 一行代码互换a,b的值

  答:a,b=b,a

2、and   or   not   的逻辑判断顺序。

3、

l1 = [1,[1,2],2,3]
l2 = l1[:] 
l1[1].append(111)
print(l1,l2)
#问 l2 是什么
答:切片操作是浅copy,第二层的嵌套时同一个内存地址,l2是 [1,[1,2,111],2,3]
#输出:[1, [1, 2, 111], 2, 3]
           [1, [1, 2, 111], 2, 3]

 4、

参数陷阱:当默认参数是一个可变数据类型时,如列表。

def defult_param(a,l = []):
    l.append(a)
    print(l)
defult_param('abc')
defult_param('123')
#输出:['alex']
['alex', 'egon']


#这里的 l 是一个默认形参,在这里每次调用函数都应该被重置成空列表,但是列表却每一次调用函数都加了一个元素。说明这个列表的内存元素一直在改变却没有被重置。
posted @ 2018-01-29 16:23  半江  阅读(95)  评论(0)    收藏  举报