Python 面试1

作者: GD_SeHun 
链接:http://www.imooc.com/article/2367
来源:慕课网

 

1. 

阅读下面的代码,写出A0,A1至An的最终值。

A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]

 

 

2. 

这两个参数是什么意思:*args**kwargs?我们为什么要使用它们?

如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args;如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargsargskwargs这两个标识符是约定俗成的用法,你当然还可以用*bob**billy,但是这样就并不太妥

 

 

3. 

下面这些是什么意思:@classmethod@staticmethod@property


这些都是装饰器(decorator)。装饰器是一种特殊的函数,要么接受函数作为输入参数,并返回一个函数,要么接受一个类作为输入参数,并返回一个类。@标记是语法糖(syntactic sugar),可以让你以简单易读得方式装饰目标对象

@classmethod@staticmethod@property 这三个装饰器的使用对象是在类中定义的函数。下面的例子展示了它们

 

4.

random = [random.random() for i in range(100000)]

产生 (0-1)内的随机数, 一共 100000 个

 

5.

lambda 函数

lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

lambda函数:首要用途是指点短小的回调函数

lambda [arguments]:expression

>>> a=lambdax,y:x+y

>>> a(3,11)

 

6.

re 模块; regular expression 模块

 

 

 

 

 

 

 



 

 



posted @ 2016-11-11 13:32  morningdew  阅读(589)  评论(0编辑  收藏  举报