python几个面试题整理

原文链接: http://www.cnblogs.com/GY-Zhu/p/9679788.html

1.下面代码会输出什么:

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

答案

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

对于第一种情况,很容易理解,没有创建新表,只是在l中添加两个元素,分别为0,1;
对于第二种情况,在内存中会创建一个新的表,在新表中增加了三个元素;
对于第三种情况比较难理解,此时,并没有创建新表,而是在原来的表l中新增了三个元素,0,1,4
2.

补充缺失的代码

def print_directory_contents(sPath):
    """  这个函数接受文件夹的名称作为输入参数,  返回该文件夹中文件的路径,  以及其包含文件夹中文件的路径。  """ # 补充代码 

答案

def print_directory_contents(sPath):
    import os for sChild in os.listdir(sPath): sChildPath = os.path.join(sPath,sChild) if os.path.isdir(sChildPath): print_directory_contents(sChildPath) else: print sChildPath

转载于:https://www.cnblogs.com/GY-Zhu/p/9679788.html

你可能感兴趣的:(python几个面试题整理)