国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

分享幾道你可能遇到的python面試題

2020-02-16 01:56:03
字體:
來源:轉載
供稿:網友

本文主要給大家介紹的是關于最近在面試中遇到的幾個python面試題,分享出來供大家參考學習,下面話不多說,來一起看看詳細的介紹:

一、生成斐波那契數列并取前10項

def func(m): n,a,b = 0,1,1 while n < m: yield a a,b = b,a+b n += 1for one in func(10): print one

這個可以說是一道常見的簡單算法題了,關鍵點就是理解a,b=b,a+b以及yield的作用。

二、擴展一個列表,列表中的元素可能也包含列表

def myextend(alist): tmp = [] for one in alist:  if isinstance(one,list):   tmp.extend(myextend(one))  else:   tmp.append(one) return tmpt = [1,2,5,[3,[],5,2,[57]],90]print tprint myextend(t)

考察遞歸調用的思想。

三、有如下代碼,請寫出輸出

def test(x,l=[]): for o in range(x):  l.append(o) print ltest(3)test(1,[3,2,1])test(3)

輸入如下:

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

可變類型作為參數在不顯示傳遞參數時,每次函數調用時候都是共用的;如果傳遞了參數(比如第二種)則不會互相影響。

四、已知某列表中包含重復數據,保持列表中元素第一次出現的順序并去重,要求復雜度為O(n)。

def fun(alist): result = [] temp = set() for o in alist:  if o not in temp:   result.append(o)   temp.add(o) return result

考察列表、集合等常見操作的復雜度。

五、已知如下函數,請寫出輸出,并寫出正確寫法:

z = [lambda x:x*i for i in range(3)]x = [o(2) for o in z]print x

輸出為[4,4,4]

這里主要考察python中閉包、返回值為函數時候的知識點。由于lambda函數共用了i變量,當調用時候i已經變成了2,所以輸出都是4。

改正:

def func(): def m(x):  def n(y):   return x * y  return n return [f(one) for one in range(3)]z = func()x = [o(2) for o in z]print x

輸出[0,2,4]

六、創建一個類,并輸出某個屬性。如果這個屬性存在則輸出值,否則輸出這個屬性名的字符串

class Mycls(object): a = 0 def __getattr__(self,name):  print namez = Mycls()print z.a,z.b

輸出為0,b。

主要考察python的反射機制,以及類相關的__getattr__方法。

注意: __getattr__方法和__getattribute__方法的區別,前者只有在屬性不存在時候調用,返回一個值或者引發異常。而后者是每次都會被調用的。

另外可以看看getattr() ,hasattr()這種內置函數。

簡答題

簡述py2和py3的區別 python的垃圾回收機制 python中多線程的方法,局限,以及有什么其他方式進行并發處理 簡述epoll、select、poll三種模型
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 康定县| 图们市| 建瓯市| 昌都县| 肇源县| 栾城县| 鹤壁市| 香格里拉县| 常德市| 龙州县| 江安县| 麻城市| 靖宇县| 射阳县| 临泽县| 平武县| 原阳县| 安顺市| 榆社县| 霞浦县| 新野县| 平江县| 赣州市| 阜阳市| 南城县| 武乡县| 霍山县| 博野县| 蒙自县| 遂溪县| 璧山县| 嘉鱼县| 浑源县| 宁强县| 沛县| 光山县| 安陆市| 共和县| 司法| 锡林浩特市| 福鼎市|