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]

解释:解释如第五题

第五题:请说明赋值、潜复制、深度复制的实现与区别?

答案:

 

posted @ 2017-03-14 22:06  花开丶败  阅读(135)  评论(0)    收藏  举报