在下方新建文章
已保存css
315道Python常見面試題
已發佈前端
第一部分,Python基礎篇
-
爲何學習Python?vue
- 經過什麼途徑學習的Python?
- Python和Java、PHP、C、C#、C++等其餘語言的對比?
- 簡述解釋型和編譯型編程語言?
- Python解釋器種類以及特色?
- 位和字節的關係?
- b、B、KB、MB、GB 的關係?
- 請至少列舉5個 PEP8 規範(越多越好)。
- 經過代碼實現以下轉換:
二進制轉換成十進制:v = 「0b1111011」
十進制轉換成二進制:v = 18
八進制轉換成十進制:v = 「011」
十進制轉換成八進制:v = 30
十六進制轉換成十進制:v = 「0x12」
十進制轉換成十六進制:v = 87python
- 請編寫一個函數實現將IP地址轉換成一個整數。
如 10.3.9.12 轉換規則爲:ios
10 00001010
3 00000011
9 00001001
12 00001100
再將以上二進制拼接起來計算十進制結果:00001010 00000011 00001001 00001100 = ?git
- 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-八、gbk 區別?
- 字節碼和機器碼的區別?
- 三元運算規則以及應用場景?
- 列舉 Python2和Python3的區別?
-
用一行代碼實現數值交換:github
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)
-
求結果:web
![img](https://upload-images.jianshu.io/upload_images/13717038-9475beb23763c340.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 列舉常見的內置函數?
- 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__
- 如何判斷是函數仍是方法?
- 靜態方法和類方法區別?
- 列舉面向對象中的特殊成員以及應用場景
- 一、二、三、四、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關鍵字。
第二部分,網絡編程和併發
-
- 簡述 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框架的使用和應用?
第三部分、數據庫和緩存
-
列舉常見的關係型數據庫和非關係型都有那些?面試
- MySQL常見數據庫引擎及比較?
- 簡述數據三大範式?
- 什麼是事務?MySQL如何支持事務?
- 簡述數據庫設計中一對多和多對多的應用場景?
- 如何基於數據庫實現商城商品計數器?
- 常見SQL(必備)
- 簡述觸發器、函數、視圖、存儲過程?
- MySQL索引種類
- 索引在什麼狀況下遵循最左前綴的規則?
- 主鍵和外鍵的區別?
- MySQL常見的函數?
- 列舉 建立索引可是沒法命中索引的8種狀況。
- 如何開啓慢日誌查詢?
- 數據庫導入導出命令(結構+數據)?
- 數據庫優化方案?
- char和varchar的區別?
- 簡述MySQL的執行計劃?
-
在對name作了惟一索引前提下,簡述如下區別:ajax
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?
第四部分、前端、框架和其餘
-
- 談談你對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的字段是否正確?若是不正確請更正:
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ羣:857662006
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
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的整個過程。
- 有問題都去那些找解決方案?
- 是否有關注什麼技術類的公衆號?
- 最近在研究什麼新技術?
- 是否瞭解過領域驅動模型?