面试题(六)
1、 获取list的元素个数,向list的末尾追加元素所用的方法分别是( ),( )
count ,append
2、 判断dict有没有某个key用的方法是( )
in
3、 L = range(100) ,取第一到第三个元素用(),取倒数第二个元素(),取后十个元素()
L[:3] L[-2] L[-10:]
4、 把L复制给L1用() 注意:非引用传递
L1 = L.copy()
5、d = {'a':1,'b':2,'c':3}请打印出key,value对
for k,v in d.items(): print(k,v)
6、 如何判断一个变量是不是字符串
isinstance(a,str)
7、 list和tuple有什么不同?
8、 xrange和range有什么不同?
9、 ‘1,2,3’如何变成[‘1’,’2’,’3’] ? [‘1’,’2’,’3’]如何变成 [1,2,3]
s1 = "1,2,3" s2 = list(s1.split(',')) s3 = list(map(int,s2))
10、请回答以下问题?
def add_end(L= []): L.append('END') return L print(add_end()) # 输出什么? print(add_end()) # 再次调用输出什么?为什么?
["END"] ["END",""END] 函数的默认参数在编译时,分配内存空间。没有给予参数都是使用默认的参数,是同一段内存地址的同一对象。
11、[36,5,12,9,21]怎么排序?
a = [36,5,12,9,21]
a.sort()
12、请回答以下问题:
def func(a,b,c=0,*args,**kwargs): pass *args,**kwargs的作用是什么?
当函数的参数不确定时,可以使用*args 和**kwargs来 传递可变参数。 *args储存可变的位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数。**kwargs存储可变的关键字参数,允许你使用没有事先定义的参数名,将接收到任意多个关键字参数作为字典传递给函数。 注意函数的参数的顺序:args必须在kwargs前面,调用函数传递参数也必须依照此顺序
13、is和==的区别是?
Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
14、如何生成[1,4,9,16,25,36,49,64,81,100]?尽量用一行实现
[x*x for x in range(1,11)]
15、生成器是什么?有什么作用?请写出一个生成器
a = ( i for i in range(11))
16、map(str,[1,2,3,4,5,6,7,8,9])输出什么?
# 生成的是map对象 print(list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))) # ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17、请写出log的实现(主要功能是打印函数名)
@log def now(): print('2013-12-25') now() # 输出: # call now() # 2013-12-25
import functools def log(func): @functools.wraps(func) def inner(): print('call '+ func.__name__ + '()') func() return inner
人,从刚出生来到这个世界,便开始探索这个世界。累了就歇会,精神了就继续探索,直至死亡。