python面試的315題
copy自武sir的博客,如有疑問請聯系武sir
第一部分 Python基礎篇(80題)
-
為什麽學習Python?
-
通過什麽途徑學習的Python?
-
Python和Java、PHP、C、C#、C++等其他語言的對比?
-
簡述解釋型和編譯型編程語言?
-
Python解釋器種類以及特點?
-
位和字節的關系?
-
b、B、KB、MB、GB 的關系?
-
請至少列舉5個 PEP8 規範(越多越好)。
- 通過代碼實現如下轉換:
二進制轉換成十進制:v = “0b1111011”?
十進制轉換成二進制:v = 18?
十進制轉換成八進制:v = 30?
十六進制轉換成十進制:v = “0x12”?
十進制轉換成十六進制:v = 87 -
請編寫一個函數實現將IP地址轉換成一個整數。
如 10.3.9.12 轉換規則為:
10 00001010
? 3 00000011?
? 12 00001100?
再將以上二進制拼接起來計算十進制結果:00001010 00000011 00001001 00001100 = ? -
python遞歸的最大層數?
- 求結果:
v1 = 1 or 3?
v2 = 1 and 3?
v3 = 0 and 2 and 1
? v4 = 0 and 2 or 1
? v5 = 0 and 2 or 1 or 4
? v6 = 0 or Flase and 1 -
ascii、unicode、utf-8、gbk 區別?
-
字節碼和機器碼的區別?
-
三元運算規則以及應用場景?
-
列舉 Python2和Python3的區別?
-
用一行代碼實現數值交換:
? a = 1
? b = 2 -
Python3和Python2中 int 和 long的區別?
-
xrange和range的區別?
-
文件操作時:xreadlines和readlines的區別?
-
列舉布爾值為False的常見值?
-
字符串、列表、元組、字典每個常用的5個方法?
-
lambda表達式格式以及應用場景?
-
pass的作用?
-
*arg和**kwarg作用
-
is和==的區別
-
簡述Python的深淺拷貝以及應用場景?
-
Python垃圾回收機制?
-
Python的可變類型和不可變類型?
- 求結果:
? v = dict.fromkeys([‘k1‘,‘k2‘],[])?
v[‘k1’].append(666)
? print(v)?
v[‘k1’] = 777
? print(v) - 求結果:
-
列舉常見的內置函數?
-
filter、map、reduce的作用?
-
一行代碼實現9*9乘法表
-
如何安裝第三方模塊?以及用過哪些第三方模塊?
-
至少列舉8個常用模塊都有那些?
-
re的match和search區別?
-
什麽是正則的貪婪匹配?
-
求結果:? a. [ i % 2 for i in range(10) ]? b. ( i % 2 for i in range(10) )
-
求結果:? a. 1 or 2? b. 1 and 2? c. 1 < (2==2)? d. 1 < 2 == 2
-
def func(a,b=[]) 這種寫法有什麽坑?
-
如何實現 “1,2,3” 變成 [‘1’,’2’,’3’] ?
-
如何實現[‘1’,’2’,’3’]變成[1,2,3] ?
-
比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的區別?
-
如何用一行代碼生成[1,4,9,16,25,36,49,64,81,100] ?
-
一行代碼實現刪除列表中重復的值 ?
-
如何在函數中設置一個全局變量 ?
-
logging模塊的作用?以及應用場景?
-
請用代碼簡答實現stack 。
-
常用字符串格式化哪幾種?
-
簡述 生成器、叠代器、可叠代對象 以及應用場景?
-
用Python實現一個二分查找的函數。
-
談談你對閉包的理解?
-
os和sys模塊的作用?
-
如何生成一個隨機數?
-
如何使用python刪除一個文件?
-
談談你對面向對象的理解?
-
Python面向對象中的繼承有什麽特點?
-
面向對象深度優先和廣度優先是什麽?
-
面向對象中super的作用?
-
是否使用過functools中的函數?其作用是什麽?
-
列舉面向對象中帶爽下劃線的特殊方法,如:__new__、__init__
-
如何判斷是函數還是方法?
-
靜態方法和類方法區別?
-
列舉面向對象中的特殊成員以及應用場景
-
1、2、3、4、5 能組成多少個互不相同且無重復的三位數
-
什麽是反射?以及應用場景?
-
metaclass作用?以及應用場景?
-
用盡量多的方法實現單例模式。
-
裝飾器的寫法以及應用場景。
-
異常處理寫法以及如何主動跑出異常(應用場景)
-
什麽是面向對象的mro
-
isinstance作用以及應用場景?
- 寫代碼並實現:
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would
have exactly one solution, and you may not use the same element twice.
Example:?
Given nums = [2, 7, 11, 15], target = 9,
?Because nums[0] + nums[1] = 2 + 7 = 9,?
return [0, 1] -
json序列化時,可以處理的數據類型有哪些?如何定制支持datetime類型?
-
json序列化時,默認遇到中文會轉換成unicode,如果想要保留中文怎麽辦?
-
什麽是斷言?應用場景?
-
有用過with statement嗎?它的好處是什麽?
-
使用代碼實現查看列舉目錄下的所有文件。
-
簡述 yield和yield from關鍵字。
第二部分 網絡編程和並發(34題)
-
簡述 OSI 七層協議。
-
什麽是C/S和B/S架構?
-
簡述 三次握手、四次揮手的流程。
-
什麽是arp協議?
-
TCP和UDP的區別?
-
什麽是局域網和廣域網?
-
為何基於tcp協議的通信比基於udp協議的通信更可靠?
-
什麽是socket?簡述基於tcp協議的套接字通信流程。
-
什麽是粘包? socket 中造成粘包的原因是什麽? 哪些情況會發生粘包現象?
-
IO多路復用的作用?
-
什麽是防火墻以及作用?
-
select、poll、epoll 模型的區別?
-
簡述 進程、線程、協程的區別 以及應用場景?
-
GIL鎖是什麽鬼?
-
Python中如何使用線程池和進程池?
-
threading.local的作用?
-
進程之間如何進行通信?
-
什麽是並發和並行?
-
進程鎖和線程鎖的作用?
-
解釋什麽是異步非阻塞?
-
路由器和交換機的區別?
-
什麽是域名解析?
-
如何修改本地hosts文件?
-
生產者消費者模型應用場景及優勢?
-
什麽是cdn?
-
LVS是什麽及作用?
-
Nginx是什麽及作用?
-
keepalived是什麽及作用?
-
haproxy是什麽以及作用?
-
什麽是負載均衡?
-
什麽是rpc及應用場景?
-
簡述 asynio模塊的作用和應用場景。
-
簡述 gevent模塊的作用和應用場景。
-
twisted框架的使用和應用?
第三部分 數據庫和緩存(46題)
-
列舉常見的關系型數據庫和非關系型都有那些?
-
MySQL常見數據庫引擎及比較?
-
簡述數據三大範式?
-
什麽是事務?MySQL如何支持事務?
-
簡述數據庫設計中一對多和多對多的應用場景?
-
如何基於數據庫實現商城商品計數器?
-
常見SQL(必備)
詳見武沛齊博客:https://www.cnblogs.com/wupeiqi/articles/5729934.html -
簡述觸發器、函數、視圖、存儲過程?
-
MySQL索引種類
-
索引在什麽情況下遵循最左前綴的規則?
-
主鍵和外鍵的區別?
-
MySQL常見的函數?
-
列舉 創建索引但是無法命中索引的8種情況。
-
如何開啟慢日誌查詢?
-
數據庫導入導出命令(結構+數據)?
-
數據庫優化方案?
-
char和varchar的區別?
-
簡述MySQL的執行計劃?
-
在對name做了唯一索引前提下,簡述以下區別:?
select * from tb where name = ‘Oldboy-Wupeiqi’ ?
select * from tb where name = ‘Oldboy-Wupeiqi’ limit 1 -
1000w條數據,使用limit offset 分頁時,為什麽越往後翻越慢?如何解決?
-
什麽是索引合並?
-
什麽是覆蓋索引?
-
簡述數據庫讀寫分離?
-
簡述數據庫分庫分表?(水平、垂直)
-
redis和memcached比較?
-
redis中數據庫默認是多少個db 及作用?
-
python操作redis的模塊?
-
如果redis中的某個列表中的數據量非常大,如果實現循環顯示每一個值?
-
redis如何實現主從復制?以及數據同步機制?
-
redis中的sentinel的作用?
-
如何實現redis集群?
-
redis中默認有多少個哈希槽?
-
簡述redis的有哪幾種持久化策略及比較?
-
列舉redis支持的過期策略。
-
MySQL 裏有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中都是熱點數據?
-
寫代碼,基於redis的列表實現 先進先出、後進先出隊列、優先級隊列。
-
如何基於redis實現消息隊列?
-
如何基於redis實現發布和訂閱?以及發布訂閱和消息隊列的區別?
-
什麽是codis及作用?
-
什麽是twemproxy及作用?
-
寫代碼實現redis事務操作。
-
redis中的watch的命令的作用?
-
基於redis如何實現商城商品數量計數器?
-
簡述redis分布式鎖和redlock的實現機制。
-
什麽是一致性哈希?Python中是否有相應模塊?
-
如何高效的找到redis中所有以oldboy開頭的key?
第四部分 前端、框架和其他(155題)
-
談談你對http協議的認識。
-
談談你對websocket協議的認識。
-
什麽是magic string ?
-
如何創建響應式布局?
-
你曾經使用過哪些前端框架?
-
什麽是ajax請求?並使用jQuery和XMLHttpRequest對象實現一個ajax請求。
-
如何在前端實現輪訓?
-
如何在前端實現長輪訓?
-
vuex的作用?
-
vue中的路由的攔截器的作用?
-
axios的作用?
-
列舉vue的常見指令。
-
簡述jsonp及實現原理?
-
是什麽cors ?
-
列舉Http請求中常見的請求方式?
-
列舉Http請求中的狀態碼?
-
列舉Http請求中常見的請求頭?
-
看圖寫結果:
-
看圖寫結果:
-
看圖寫結果:
-
看圖寫結果:
-
看圖寫結果:
-
看圖寫結果:
-
django、flask、tornado框架的比較?
-
什麽是wsgi?
-
django請求的生命周期?
-
列舉django的內置組件?
-
列舉django中間件的5個方法?以及django中間件的應用場景?
-
簡述什麽是FBV和CBV?
-
django的request對象是在什麽時候創建的?
-
如何給CBV的程序添加裝飾器?
-
列舉django orm 中所有的方法(QuerySet對象的所有方法)
-
only和defer的區別?
-
select_related和prefetch_related的區別?
-
filter和exclude的區別?
-
列舉django orm中三種能寫sql語句的方法。
-
django orm 中如何設置讀寫分離?
-
F和Q的作用?
-
values和values_list的區別?
-
如何使用django orm批量創建數據?
-
django的Form和ModeForm的作用?
-
django的Form組件中,如果字段中包含choices參數,請使用兩種方式實現數據源實時更新。
-
django的Model中的ForeignKey字段中的on_delete參數有什麽作用?
-
django中csrf的實現機制?
-
django如何實現websocket?
-
基於django使用ajax發送post請求時,都可以使用哪種方法攜帶csrf token?
-
django中如何實現orm表中添加數據時創建一條日誌記錄。
-
django緩存如何設置?
-
django的緩存能使用redis嗎?如果可以的話,如何配置?
-
django路由系統中name的作用?
-
django的模板中filter和simple_tag的區別?
-
django-debug-toolbar的作用?
-
django中如何實現單元測試?
-
解釋orm中 db first 和 code first的含義?
-
django中如何根據數據庫表生成model中的類?
-
使用orm和原生sql的優缺點?
-
簡述MVC和MTV
-
django的contenttype組件的作用?
-
談談你對restfull 規範的認識?
-
接口的冪等性是什麽意思?
-
什麽是RPC?
-
Http和Https的區別?
-
為什麽要使用django rest framework框架?
-
django rest framework框架中都有那些組件?
-
django rest framework框架中的視圖都可以繼承哪些類?
-
簡述 django rest framework框架的認證流程。
-
django rest framework如何實現的用戶訪問頻率控制?
-
Flask框架的優勢?
-
Flask框架依賴組件?
-
Flask藍圖的作用?
-
列舉使用過的Flask第三方組件?
-
簡述Flask上下文管理流程?
-
Flask中的g的作用?
-
Flask中上下文管理主要涉及到了那些相關的類?並描述類主要作用?
-
為什麽要Flask把Local對象中的的值stack 維護成一個列表?
-
Flask中多app應用是怎麽完成?
-
在Flask中實現WebSocket需要什麽組件?
-
wtforms組件的作用?
-
Flask框架默認session處理機制?
-
解釋Flask框架中的Local對象和threading.local對象的區別?
-
Flask中 blinker 是什麽?
-
SQLAlchemy中的 session和scoped_session 的區別?
-
SQLAlchemy如何執行原生SQL?
-
ORM的實現原理?
-
DBUtils模塊的作用?
- 以下SQLAlchemy的字段是否正確?如果不正確請更正:
1 2 3 4 5 6 7 8 9 10 11 from
datetime
import
datetime
?
from
sqlalchemy.ext.declarative
import
declarative_base
?
from
sqlalchemy
import
Column, Integer, String, DateTime
??
Base
=
declarative_base()??
class
UserInfo(Base):?
__tablename__
=
‘userinfo‘
?
id
=
Column(Integer, primary_key
=
True
, autoincrement
=
True
)?
name
=
Column(String(
64
), unique
=
True
)?
ctime
=
Column(DateTime, default
=
datetime.now())
-
SQLAchemy中如何為表設置引擎和字符編碼?
-
SQLAchemy中如何設置聯合唯一索引?
-
簡述Tornado框架的特點。
-
簡述Tornado框架中Future對象的作用?
-
Tornado框架中如何編寫WebSocket程序?
-
Tornado中靜態文件是如何處理的??如: <link href="{{static_url("commons.css")}}" rel="stylesheet" />
-
Tornado操作MySQL使用的模塊?
-
Tornado操作redis使用的模塊?
-
簡述Tornado框架的適用場景?
-
git常見命令作用:
-
簡述以下git中stash命令作用以及相關其他命令。
-
git 中 merge 和 rebase命令 的區別。
-
公司如何基於git做的協同開發?
-
如何基於git實現代碼review?
-
git如何實現v1.0 、v2.0 等版本的管理?
-
什麽是gitlab?
-
github和gitlab的區別?
-
如何為github上牛逼的開源項目貢獻代碼?
-
git中 .gitignore文件的作用?
-
什麽是敏捷開發?
-
簡述 jenkins 工具的作用?
-
公司如何實現代碼發布?
-
簡述 RabbitMQ、Kafka、ZeroMQ的區別?
-
RabbitMQ如何在消費者獲取任務後未處理完前就掛掉時,保證數據不丟失?
-
RabbitMQ如何對消息做持久化?
-
RabbitMQ如何控制消息被消費的順序?
-
以下RabbitMQ的exchange type分別代表什麽意思?如:fanout、direct、topic。
-
簡述 celery 是什麽以及應用場景?
-
簡述celery運行機制。
-
celery如何實現定時任務?
-
簡述 celery多任務結構目錄?
-
celery中裝飾器 @app.task 和 @shared_task的區別?
-
簡述 requests模塊的作用及基本使用?
-
簡述 beautifulsoup模塊的作用及基本使用?
-
簡述 seleninu模塊的作用及基本使用?
-
scrapy框架中各組件的工作流程?
-
在scrapy框架中如何設置代理(兩種方法)?
-
scrapy框架中如何實現大文件的下載?
-
scrapy中如何實現限速?
-
scrapy中如何實現暫定爬蟲?
-
scrapy中如何進行自定制命令?
-
scrapy中如何實現的記錄爬蟲的深度?
-
scrapy中的pipelines工作原理?
-
scrapy的pipelines如何丟棄一個item對象?
-
簡述scrapy中爬蟲中間件和下載中間件的作用?
-
scrapy-redis組件的作用?
-
scrapy-redis組件中如何實現的任務的去重?
-
scrapy-redis的調度器如何實現任務的深度優先和廣度優先?
-
簡述 vitualenv 及應用場景?
-
簡述 pipreqs 及應用場景?
-
在Python中使用過什麽代碼檢查工具?
-
簡述 saltstack、ansible、fabric、puppet工具的作用?
-
B Tree和B+ Tree的區別?
-
請列舉常見排序並通過代碼實現任意三種。
-
請列舉常見查找並通過代碼實現任意三種。
-
請列舉你熟悉的設計模式?
-
有沒有刷過leetcode?
-
列舉熟悉的的Linux命令。
-
公司線上服務器是什麽系統?
-
解釋 PV、UV 的含義?
-
解釋 QPS的含義?
-
uwsgi和wsgi的區別?
-
supervisor的作用?
-
什麽是反向代理?
-
簡述SSH的整個過程。
-
有問題都去那些找解決方案?
-
是否有關註什麽技術類的公眾號?
-
最近在研究什麽新技術?
-
是否了解過領域驅動模型?
python面試的315題