42、如何在Python中拷贝一个对象,并说明他们之间的区别
答:Python中有两种拷贝方式,深拷贝与浅拷贝
浅拷贝:用赋值符号(=)即可,内存地址公用,一个改复制对象全都改
深拷贝:用copy模块下的deepcopy方法,每一个拷贝对象都是独立的内存地址
43、谈谈你对Python装饰器的理解
答:装饰器是一个内嵌函数
他能不改变原函数代码的情况下增加其装饰函数的功能
44、Python里的match()与search()区别
答:match是从字符串第一位开始匹配,若第一位不同则找不到
search是在字符串中找到匹配的字符串,第一位不同就找下一位
45、获取list的元素个数,和向末尾追加元素所用的方法分别是
答:len(),.append()
46、判断dict有没有某个key的方法是
答:py2.7(dict.has_key(key)) py3 key in dict
47、L=range(100),取第一到第三个元素用(L[:3]),取倒数第二个元素(L[-2]),取后十个用(L[-11:-1])
把L复制给L1用(L1=copy.deepcopy(L)),非引用传递
48、d = {‘a‘:1,‘b‘:2,‘c‘:3}请打印key,value对
答:for k,v in d.values(): print k,v
49、如何判断一个变量是不是字符串?
答:type(a) is str
50、list与touple有什么不同
答:list内的元素可变,touple内的元素不可变,相同长度的list与touple,list占得内存大
51、xrange与range有什么不同?
答:range生成一个列表,xrange生成一个生成器
52、‘1,2,3’如何变成[‘1‘,‘2‘,‘3‘]? [‘1‘,‘2‘,‘3‘]如何变成[1,2,3]?
答:‘1,2,3’.split(‘,‘) map(int,b)
53、def add_end(L=[]):
L.append(‘END‘)
return L
>>>add_end() 输出什么---------------[‘END‘]
>>>add_end()再次调用输出什么?为什么--------------[‘END‘,‘END’]因为指向的列表还是原来那个
54、[36,5,12,9,21]怎么排序?
答:sorted([36,5,12,9,21])
55、def func(a,b,c=0,*args,**kw):
pass
*args,**kw的作用是什么
答:接受额外的参数
56、is与==的区别?
答:is比较内存地址和值,==只比较值
57、如何生成[1,4,9,16,25,36,49,64,81,100]?尽量用一行实现?
答:[i*i for i in range(1,11)]
58、生成器是什么?有什么作用?请写一个生成器
答:生成器的本质就是一个迭代器,实现惰性生成,在需要一个数据时生成一个数据
def gen():
for i in range(10):
yield i
59、map(str,[1,2,3,4,5,6,7,8,9])输出什么?
答:[‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘]
60、请写log的实现(主要功能打印函数名)
@log
def now():
print ‘123455‘
>>>now()
输出call now():‘‘123455‘
答:
def log(func):
def inner(*args,**kwargs):
print ‘call %s:‘ % func.__name__
ret = func(*args,**kwargs)
return ret
return inner
61、以下叙述正确的是
A、continue语句的作用是结束整个循环的执行 B、只能在循环体内和switch语句内使用break
C、在循环体内使用continue和break作用相同 D、从多层循环嵌套中退出时,只能使用goto语句
62、Python如何定义一个函数
A、class<name>(<Type>arg1,<Type>arg2) B、function<name>(arg1,arg2)
C、def <name>(arg1,arg2) D、def <name>(<Type>arg1,<Type>arg2)
63、下面那个函数能够在linux下创建子进程
A、os.popenB、os.forkC、os.systemD、os.link
64、已知x=43,ch=‘A‘,y=1,则表达式(x>y and ch <‘B‘ and y)的值是
A、0 B、1 C、出错 D、True(‘真‘)
65、下面语句那个会无限循环下去
其中range函数原型为range([start],stop[,step])
A、for a in range(10):time.sleep(10) B、while 1 < 10: time.sleep(10)
C、while True:break D、a=[3,-1,‘,"] for i in a[:]: if a >10:break;
66、下列表达式中返回True的是
A、3>2>2 B、‘abc‘>‘xyz‘ C、0x56<56 D、(3,2)<(‘a‘,‘b‘)
67、Python不支持的数据类型有
A、char B、int C、float D、list
68、下面的函数转换哪一个是正确的
A、int(‘ABcDef‘) B、float(‘‘‘) C、bool((3,‘‘‘‘)) D、str(‘)
69、下面函数,那些会输出1,2,3三个数字
A、for i in range(3):print i B、aList = [0,1,2] for i in aList:print i+1
C、i = 1 while i <3: print i i=i+1 D、for i in range(3):print i+1