Python面试题总结【基础篇】
今天参加了一家公司的笔试,以下对笔试中遇到的问题进行总结。
第一题:以下程序中问号部分应该是多少?
var = 0 def func(var): var = 1 func(var) print(var) = ?
答案:0
解释:第一行代码中var为全局变量,而第三行代码中的var变量是在def内部的局部变量,对它的赋值只在def内部生效,故print(var)=0.
第二题:以下程序中问号部分应该是多少?
list = [] def func(list): list.append(100) func(list) print(list) = ?
答案:[100]
解释:此题与第一题的区别在于list.append()方法在list对象原处修改对象,故print(list) = [100].
第三题:以下程序中问号部分应该是多少?
list = [1, 2, 3] list[1] = list print(list) =?
答案:[1,[...],3]
解释:在这里回答[1,[1,2,3],3]的同学可以试着print(list[1]),查看运行结果发现依旧为[1,[...],3],这是因为题中第二行代码中列表list中包含自身的引用,而list被称为循环对象。无论何时Python在对象中检测到循环,都会打印成[...],而不会陷入无限循环。
第四题:以下程序中问号部分应该是多少?
a = [1, [2, 3], 4] b = a[:] a[0] = 5 a[1][1] = 6 print(a) = ?
print(b) = ?
答案:print(a):[5, [2, 6], 4] print(b):[1, [2, 6], 4]
解释:解释如第五题
第五题:请说明赋值、潜复制、深度复制的实现与区别?
答案:

浙公网安备 33010602011771号