幾個鏈接:
編程零基礎應當如何開始學習 Python ? - 路人甲的回答
網易雲課堂上有哪些值得推薦的 Python 教程? - 路人甲的回答
怎么用最短時間高效而踏實地學習 Python? - 路人甲的回答
如何學習Python爬蟲[入門篇] - 學習編程 - 知乎專欄
學好Python的11個優秀資源 - 學習編程 - 知乎專欄
在開頭依然推薦一個Python面試題整理比較好的網站:GitHub : 關於Python的面試題。同樣推薦幾道題目來自@auxten 的專欄知乎專欄 - 面向工資編程 其中有幾篇很不錯的Python面試的題目。並附有非常詳細的回答。 (請大家進入專欄查找)。
1.How are arguments passed – by reference of by value?
2.Do you know what list and dict comprehensions are? Can you give an example?
3.What is PEP 8?
4.Do you use virtual environments?
5.Can you sum all of the elements in the list, how about to multuply them and get the result?
6.Do you know what is the difference between lists and tuples? Can you give me an example for their usage?
7.Do you know the difference between range and xrange?
8.Tell me a few differences between Python 2.x and 3.x
9.What are decorators and what is their usage?
10.The with statement and its usage.
11.說說你對zen of python的理解,你有什么辦法看到它
12.github上都fork過哪些python庫,列舉一下你經常使用的,每個庫用一句話描述下其功能
13.你調試python代碼的方法有哪些
14.什么是GIL
15.什么是元類(meta_class)
16.對比一下dict中 items 與 iteritems
17.是否遇到過python的模塊間循環引用的問題,如何避免它
18.有用過with statement嗎?它的好處是什么?
19.說說decorator的用法和它的應用場景,如果可以的話,寫一個decorator
20.inspect模塊有什么用
21.寫一個類,並讓它盡可能多的支持操作符
22.說一說你見過比較cool的python實現
23.python下多線程的限制以及多進程中傳遞參數的方式
24.Python是如何進行內存管理的?
25.什么是lambda函數?它有什么好處?
26.如何用Python輸出一個Fibonacci數列?
27.介紹一下Python中webbrowser的用法?
28.解釋一下python的and-or語法
29.Python是如何進行類型轉換的?
30.Python如何實現單例模式?其他23種設計模式python如何實現?
31.如何用Python來進行查詢和替換一個文本字符串?
32.如何用Python來發送郵件?
33.有沒有一個工具可以幫助查找python的bug和進行靜態的代碼分析?
34.有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序;
要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。
35.如何用Python刪除一個文件?
36.Python如何copy一個文件?
37.python程序中文輸出問題怎么解決?
38.python代碼得到列表list的交集與差集
39.寫一個簡單的python socket編程
40.python如何捕獲異常
41.在Python中, list, tuple, dict, set有什么區別, 主要應用在什么樣的場景?
42. 靜態函數, 類函數, 成員函數的區別?
43. a=1, b=2, 不用中間變量交換a和b的值
44. 寫一個函數, 輸入一個字符串, 返回倒序排列的結果: 如: string_reverse(‘abcdef’), 返回: ‘fedcba’
45. 請用自己的算法, 按升序合並如下兩個list, 並去除重復的元素:
list1 = [2, 3, 8, 4, 9, 5, 6]
list2 = [5, 6, 10, 17, 11, 2]
46. 說一下以下代碼片段存在的問題
from amodule import * # amodule is an exist module class dummyclass(object): def __init__(self): self.is_d = True pass class childdummyclass(dummyclass): def __init__(self, isman): self.isman = isman @classmethod def can_speak(self): return True @property def man(self): return self.isman if __name__ == "__main__": object = new childdummyclass(True) print object.can_speak() print object.man() print object.is_d
47. 介紹一下python的異常處理機制和自己開發過程中的體會
48.解釋一下 WSGI 和 FastCGI 的關系?
49.解釋一下 Django 和 Tornado 的關系、差別
50.解釋下Django使用redis緩存服務器
51.如何進行Django單元測試
52.解釋下Http協議
53.解釋下Http請求頭和常見響應狀態碼
54.分別簡述OO,OOA
55.簡述正則表達式中?p的含義
56.Python類中的self的具體含義是
57.請寫出python的常用內置函數(至少3個),並描述它們具體含義
58.可以用python進行POST數據提交,可以加載什么模塊來進行操作?在操作之前需要對數據進行什么操作?
59.說出python中間件Sqlalchemy的具體聲明方式?以及模塊與MySQLdb之間的區別?
60.描述出3中python常用框架,並簡要描述這些框架的優缺點
61.reactor是什么? 有什么作用?請簡要描述。
62.請描述2種不同語言間數據流轉通用格式。
63.簡述我們使用多線程編程時,鎖與信號量之間的關系。
64.通常在python編寫tcp服務時,我們使用拆、粘包的模塊是什么?如何加載這個模塊?
65.兩個整數數組各有100億條數據,並已經排序,保存在磁盤上,內存10M。
問:
(1)如何取得交集?時間和空間效率分別是多少?Python 集合set()操作方法
(2)如果其中一個數組只有100條數據,如何優化算法取得交集?時間和空間效率分別是多少?
(3)用自己熟悉的語言實現第2個問題,要求可以正確運行;假設已經提供函數read_elt(arrary_name, index)可以用來讀取某個數組的第index個元素,元素個數分別用m=100和n=10^10表示。
66.有100個磁盤組成的存儲系統,當有3個磁盤同時損壞時,才會發生數據丟失。如果1個磁盤的損壞率是p,請問整個存儲系統丟失數據的概率是多少?
67.請描述B-Tree插入值的過程
67.一個管道可以從a端發送字符到b端,只能發送0-9這10個數字,設計消息的協議,讓a可以通知b任意大小的數字,並討論這種消息協議可能發送的錯誤的處理能力。
68.假設fd是一個socket,read(fd, buf, 1024)
問:可能返回哪些值?其代表什么含義?
69.自旋鎖適合哪些場合應用,不適合哪些場合?
70.假設網絡會丟失消息,進程可能意外終止,磁盤可靠(寫入數據后不會丟失);
問:
如何構建一個可靠的分布式key-value存儲系統?
答題要求如下:
1.客戶端向系統發送1條寫入請求(例如key=x, value=1),系統返回'成功',客戶端一定可以正確讀取到key=y的值
2.在你設計的系統中,要滿足上面第1條,並有一定對故障的容錯能力。
3.如果要盡可能提高寫入或讀寫成功率,如果改進系統設計?分別會有哪些問題?
71.假設你的鍵盤只有以下鍵:
A
Ctrl + A
Ctrl + C
Ctrl + V
這里Ctrl+A,Ctrl+C,Ctrl+V分別代表"全選",“復制”,“粘貼”。
如果你只能按鍵盤N次,請寫一個程序可以產生最多數量的A。也就是說輸入是N(你按鍵盤的次數), 輸出是M(產生的A的個數)。
加分項:
打印出中間你按下的那些鍵。
72.假設給你一個月的日志,格式如下:
[I 130403 17:26:40] 1 200 GET /question/123 (8.8.9.9) 200.39ms
[I 130403 17:26:90] 1 200 GET /topic/456 (8.8.9.9) 300.85ms
[I 130403 17:26:90] 1 200 POST /answer/789 (8.8.9.9) 300.85ms
...
方括號中依次是:級別,日期,時間,后面依次是用戶id,返回碼,訪問方式,訪問路徑,用戶ip,響應時間
日志文件名格式為:年-月-日-小時.log,如:2013-01-01-18.log,共30*24個文件。
寫個程序,算出一個用戶列表和一個路徑列表符合以下要求:
(1).這些用戶每天都會訪問(GET)/topic/***這個路徑兩次以上(*代表數字)
(2).這些用戶每天訪問(GET)的/topic/***路徑中,至少會包含兩個不同的路徑(后面的數字不一樣)
(3).統計出所有以上用戶所訪問的路徑中每天都出現兩次以上的路徑列表
73.有兩個序列a,b,大小都為n,序列元素的值任意整形數,無序;
要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小
74.Python語言的有哪些缺陷?
75.What are some key differences to bear in mind when coding in Python vs. Java?
76.有哪些CPython的替代實現?什么時候,為什么會使用他們?
77. Python是解釋型的還是編譯型的?
78.為什么要用函數裝飾器?請舉例
78.現在有一個 dict 對象 adict,里面包含了一百萬個元素,查找其中的某個元素的平均需要多少次比較?一千萬個元素呢?
79.現在有一個 list 對象 alist,里面的所有元素都是字符串,編寫一個函數對它實現一個大小寫無關的排序。
80.python 里關於“堆”這種數據結構的模塊是哪個?“堆”有什么優點和缺點?舉一個游戲開發中可能會用到堆的問題(不限是於 python 的堆,可以是其它語言的相關實現)。
81.set 是在哪個版本成為 build-in types 的?舉一個你在以往項目中用到這種數據結構的問題(不限是於 python 的 set ,可以是其它語言的相關實現),並說明為什么當時選擇了 set 這種數據結構。
82.有一個排好序地 list 對象 alist,查找其中是否有某元素 a(盡可能地使用標准庫函數)
83.實現一個 stack。
84.編寫一個簡單的 ini 文件解釋器。
85.現有 N 個純文本格式的英文文件,實現一種檢索方案,即做一個小搜索引擎。