Python 常用面試題
python:3.5
歡迎加入學習交流QQ群:657341423
1.可變型別 Vs 不可變型別
可變型別(mutable):列表,字典,集合
不可變型別(unmutable):數字,字串,元組
這裡的可變不可變,是指記憶體中的那塊內容(value)是否可以被改變
參考資料:http://www.cnblogs.com/huamingao/p/5809936.html
2.併發程式設計——全域性解釋鎖(GIL)
Python作為一種解釋型語言,由於使用了全域性解釋鎖(GIL)的原因,其程式碼不能同時在多核CPU上併發的執行。這也導致在Python中使用多執行緒程式設計並不能實現併發,我們得使用其他的方法在Python中實現併發程式設計。
Python並不支援真正意義上的多執行緒。Python中提供了多執行緒包,但是如果你想通過多執行緒提高程式碼的速度,使用多執行緒包並不是個好主意。Python中有一個被稱為Global Interpreter Lock(GIL)的東西,它會確保任何時候你的多個執行緒中,只有一個被執行。執行緒的執行速度非常之快,會讓你誤以為執行緒是並行執行的,但是實際上都是輪流執行。經過GIL這一道關卡處理,會增加執行的開銷。這意味著,如果你想提高程式碼的執行速度,使用threading包並不是一個很好的方法。
參考資料:
http://www.cnblogs.com/vipchenwei/p/7221851.html?utm_source=itdadao&utm_medium=referral
3.資料結構和演算法
不管任何開發語言,資料結構和演算法都是必須具備的,不然只能算是個碼農,算不上真正的程式設計師。
參考資料:http://www.cnblogs.com/hanahimi/p/4692225.html
4.@staticmethod和@classmethod和@property
@classmethod, @staticmethod和@property這三個裝飾器的使用物件是在類中定義的函式
參考資料:
http://blog.csdn.net/u010571844/article/details/50728991
http://www.cnblogs.com/wangyongsong/p/6750454.html
5.類變數和例項變數
參考資料:http://www.cnblogs.com/sherylwang/p/5537778.html
**6.這兩個引數是什麼意思:args,kwargs
如果我們不確定要往函式中傳入多少個引數,或者我們想往函式中以列表和元組的形式傳引數時,那就使要用args;如果我們不知道要往函式中傳入多少個關鍵詞引數,或者想傳入字典的值作為關鍵詞引數時,那就要使用**kwargs。args和kwargs這兩個識別符號是約定俗成的用法,你當然還可以用*bob和**billy
,但是這樣就並不太妥。
下面是具體的示例:
def f(*args,**kwargs): print args, kwargs
l = [1,2,3]
t = (4,5,6)
d = {'a':7,'b':8,'c':9}
f()
f(1,2,3) # (1, 2, 3) {}
f(1,2,3,"groovy") # (1, 2, 3, 'groovy') {}
f(a=1,b=2,c=3) # () {'a': 1, 'c': 3, 'b': 2}
f(a=1,b=2,c=3,zzz="hi") # () {'a': 1, 'c': 3, 'b': 2, 'zzz': 'hi'}
f(1,2,3,a=1,b=2,c=3) # (1, 2, 3) {'a': 1, 'c': 3, 'b': 2}
f(*l,**d) # (1, 2, 3) {'a': 7, 'c': 9, 'b': 8}
f(*t,**d) # (4, 5, 6) {'a': 7, 'c': 9, 'b': 8}
f(1,2,*t) # (1, 2, 4, 5, 6) {}
f(q="winning",**d) # () {'a': 7, 'q': 'winning', 'c': 9, 'b': 8}
f(1,2,*t,q="winning",**d) # (1, 2, 4, 5, 6) {'a': 7, 'q': 'winning', 'c': 9, 'b': 8}
def f2(arg1,arg2,*args,**kwargs): print arg1,arg2, args, kwargs
f2(1,2,3) # 1 2 (3,) {}
f2(1,2,3,"groovy") # 1 2 (3, 'groovy') {}
f2(arg1=1,arg2=2,c=3) # 1 2 () {'c': 3}
f2(arg1=1,arg2=2,c=3,zzz="hi") # 1 2 () {'c': 3, 'zzz': 'hi'}
f2(1,2,3,a=1,b=2,c=3) # 1 2 (3,) {'a': 1, 'c': 3, 'b': 2}
f2(*l,**d) # 1 2 (3,) {'a': 7, 'c': 9, 'b': 8}
f2(*t,**d) # 4 5 (6,) {'a': 7, 'c': 9, 'b': 8}
f2(1,2,*t) # 1 2 (4, 5, 6) {}
f2(1,1,q="winning",**d) # 1 1 () {'a': 7, 'q': 'winning', 'c': 9, 'b': 8}
f2(1,2,*t,q="winning",**d) # 1 2 (4, 5, 6) {'a': 7, 'q': 'winning', 'c': 9, 'b': 8}
7.Python垃圾回收機制
參考資料:http://www.jb51.net/article/79306.htm
8.如何寫出高效的程式碼
可以使用import cProfile
程式分析包分析程式執行時間
參考資料:http://blog.csdn.net/asukasmallriver/article/details/74356771
http://blog.csdn.net/xiemanr/article/details/72763234
9.PEP8規範
參考資料:http://blog.sae.sina.com.cn/archives/4781
Python之禪
參考資料:http://blog.csdn.net/zhoudaxia/article/details/23605263
WSGI
參考資料:http://blog.csdn.net/li_101357/article/details/52748686
參考資料:
http://python.jobbole.com/88653/
相關文章
- iPhone 常用面試題目iPhone面試題
- Jquery常用面試題(總結)jQuery面試題
- 程式語言面試常用題面試
- python面試題Python面試題
- React 常用面試題目與分析React面試題
- 面試題常用易錯總結面試題
- 移動開發面試常用題移動開發面試
- python面試題(一)Python面試題
- Python面試題庫Python面試題
- python面試題目Python面試題
- Nginx 常用面試題-什麼是NginxNginx面試題
- 常用JAVA面試題庫(附答案)一Java面試題
- 昨天去面試,這5個Python面試題都被考到了,Python面試題No6Python面試題
- python刷題常用模板Python
- python後端面試題Python後端面試題
- Python 筆試 面試題Python筆試面試題
- 週三面試Python開發,這幾道Python面試題差點答錯,Python面試題No7Python面試題
- Python面試50題!面試鞏固必看!【轉】Python面試
- Python就業面試題分享Python就業面試題
- Python面試常見問題Python面試
- python工程師面試題Python工程師面試題
- 蛇皮的Python面試題目Python面試題
- 很全的 Python 面試題Python面試題
- 又面試了Python爬蟲工程師,碰到這麼幾道面試題,Python面試題No9Python爬蟲工程師面試題
- Python經典面試題(附答案)!Python面試題
- 20道流行的Python 面試題Python面試題
- 5 個很好的 Python 面試題Python面試題
- python測試開發面試題Python面試題
- Google 面試題 | 132模式 Python 版本Go面試題模式Python
- Python工程師面試題集合Python工程師面試題
- 面試Python機器學習時,常見的十個面試題Python機器學習面試題
- Python面試你可能會被問到的面試題Python面試題
- Java常用面試題之Java多執行緒(十三)Java面試題執行緒
- 求職面試常見問題:Python常見面試題全解析附答案求職Python面試題
- JVM面試問題系列:JVM 配置常用引數和常用 GC 調優策略JVM面試GC
- 2019年,Python工程師必考的6個面試題,Python面試題No5Python工程師面試題
- 搞定這套 Python 爬蟲面試題,面試會 so easyPython爬蟲面試題
- 20道python面試題,看完不用愁!Python面試題