python筆試題42-69
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
python筆試題42-69