Python 爬虫面试题 102 道
語言特性
1.談談對 Python 和其他語言的區(qū)別
2.簡述解釋型和編譯型編程語言
3.Python 的解釋器種類以及相關特點?
4.說說你知道的Python3 和 Python2 之間的區(qū)別?
5.Python3 和 Python2 中 int 和 long 區(qū)別?
6.xrange 和 range 的區(qū)別?
編碼規(guī)范
7.什么是 PEP8?
8.了解 Python 之禪么?
9.了解 docstring 么?
10.了解類型注解么?
11.例舉你知道 Python 對象的命名規(guī)范,例如方法或者類等
12.Python 中的注釋有幾種?
13.如何優(yōu)雅的給一個函數(shù)加注釋?
14.如何給變量加注釋?
15.Python 代碼縮進中是否支持 Tab 鍵和空格混用。
16.是否可以在一句 import 中導入多個庫?
17.在給 Py 文件命名的時候需要注意什么?
18.例舉幾個規(guī)范 Python 代碼風格的工具
數(shù)據(jù)類型
字符串
19.列舉 Python 中的基本數(shù)據(jù)類型?
20.如何區(qū)別可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型
21.將"hello world"轉換為首字母大寫"Hello World"
22.如何檢測字符串中只含有數(shù)字?
23.將字符串"ilovechina"進行反轉
24.Python 中的字符串格式化方式你知道哪些?
25.有一個字符串開頭和末尾都有空格,比如“ adabdw ”,要求寫一個函數(shù)把這個字符串的前后空格都去掉。
26.獲取字符串”123456“最后的兩個字符。
27.一個編碼為 GBK 的字符串 S,要將其轉成 UTF-8 編碼的字符串,應如何操作?
28.(1)s=“info:xiaoZhang 33 shandong”,用正則切分字符串輸出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
(2) a = "你好 中國 ",去除多余空格只留一個空格。29.(1)怎樣將字符串轉換為小寫
(2)單引號、雙引號、三引號的區(qū)別?操作類題目
30.Python 交換兩個變量的值
31.在讀文件操作的時候會使用 read、readline 或者 readlines,簡述它們各自的作用
32.json 序列化時,可以處理的數(shù)據(jù)類型有哪些?如何定制支持 datetime 類型?
33.json 序列化時,默認遇到中文會轉換成 unicode,如果想要保留中文怎么辦?
34.有兩個磁盤文件 A 和 B,各存放一行字母,要求把這兩個文件中的信息合并(按字母順序排列),輸出到一個新文件 C 中。
35.如果當前的日期為 20190530,要求寫一個函數(shù)輸出 N 天后的日期,(比如 N 為 2,則輸出 20190601)。
36.寫一個函數(shù),接收整數(shù)參數(shù) n,返回一個函數(shù),函數(shù)的功能是把函數(shù)的參數(shù)和 n 相乘并把結果返回。
37.下面代碼會存在什么問題,如何改進?
38.一行代碼輸出 1-100 之間的所有偶數(shù)。
39.with 語句的作用,寫一段代碼?
40.python 字典和 json 字符串相互轉化方法
41.請寫一個 Python 邏輯,計算一個文件中的大寫字母數(shù)量
42.請寫一段 Python連接 Mongo 數(shù)據(jù)庫,然后的查詢代碼。
43.說一說 Redis 的基本類型。
44.請寫一段 Python連接 Redis 數(shù)據(jù)庫的代碼。
45.請寫一段 Python 連接 MySQL 數(shù)據(jù)庫的代碼。
46.了解 Redis 的事務么?
47.了解數(shù)據(jù)庫的三范式么?
48.了解分布式鎖么?
49.用 Python 實現(xiàn)一個 Reids 的分布式鎖的功能。
50.寫一段 Python 使用 Mongo 數(shù)據(jù)庫創(chuàng)建索引的代碼。
高級特性
51.函數(shù)裝飾器有什么作用?請列舉說明?
52.Python 垃圾回收機制?
53.魔法函數(shù) __ call __ 怎么使用?
54.如何判斷一個對象是函數(shù)還是方法?
55.@classmethod 和@staticmethod 用法和區(qū)別
56.Python 中的接口如何實現(xiàn)?
57.Python 中的反射了解么?
58.metaclass 作用?以及應用場景?
59.hasattr() getattr() setattr()的用法
60.請列舉你知道的 Python 的魔法方法及用途。
61.如何知道一個 Python 對象的類型?
62.Python 的傳參是傳值還是傳址?
63.Python 中的元類(metaclass)使用舉例
64.簡述 any()和 all()方法
65.filter 方法求出列表所有奇數(shù)并構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
66.什么是猴子補丁?
67.在 Python 中是如何管理內存的?
68.當退出 Python 時是否釋放所有內存分配?
算法和數(shù)據(jù)結構
69.已知:
(1) 從 AList 和 BSet 中 查找 4,最壞時間復雜度那個大?
(2) 從 AList 和 BSet 中 插入 4,最壞時間復雜度那個大?
70.用 Python 實現(xiàn)一個二分查找的函數(shù)
71.python 單例模式的實現(xiàn)方法
72.使用 Python 實現(xiàn)一個斐波那契數(shù)列
73.找出列表中的重復數(shù)字
74.找出列表中的單個數(shù)字
75.寫一個冒泡排序
76.寫一個快速排序
77.寫一個拓撲排序
78.python 實現(xiàn)一個二進制計算
79.有一組“+”和“-”符號,要求將“+”排到左邊,“-”排到右邊,寫出具體的實現(xiàn)方法。
80.單鏈表反轉
81.交叉鏈表求交點
82.用隊列實現(xiàn)棧
83.找出數(shù)據(jù)流的中位數(shù)
84.二叉搜索樹中第 K 小的元素
爬蟲相關
85.在 requests 模塊中,requests.content 和 requests.text 什么區(qū)別
86.簡要寫一下 lxml 模塊的使用方法框架
87.說一說 scrapy 的工作流程
88.scrapy 的去重原理
89.scrapy 中間件有幾種類,你用過哪些中間件
90.你寫爬蟲的時候都遇到過什么?反爬蟲措施,你是怎么解決的?
91.為什么會用到代理?
92.代理失效了怎么處理?
93.列出你知道 header 的內容以及信息
94.說一說打開瀏覽器訪問 www.baidu.com 獲取到結果,整個流程。
95.爬取速度過快出現(xiàn)了驗證碼怎么處理
96.scrapy 和 scrapy-redis 有什么區(qū)別?為什么選擇 redis 數(shù)據(jù)庫?
97.分布式爬蟲主要解決什么問題
98.寫爬蟲是用多進程好?還是多線程好? 為什么?
99.解析網頁的解析器使用最多的是哪幾個
100.需要登錄的網頁,如何解決同時限制 ip,cookie,session(其中有一些是動態(tài)生成的)在不使用動態(tài)爬取的情況下?
101.驗證碼的解決(簡單的:對圖像做處理后可以得到的,困難的:驗證碼是點擊,拖動等動態(tài)進行的?)
102.使用最多的數(shù)據(jù)庫(mysql,mongodb,redis 等),對他的理解?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Python 爬虫面试题 102 道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python解释器种类以及特点?
- 下一篇: Python可视化库Matplotlib