第一部分 Python基礎(chǔ)篇(80題)
1、為什么學(xué)習(xí)Python巷查?
語言本身簡潔浮梢,優(yōu)美,功能超級強(qiáng)大
跨平臺
非常火爆的社區(qū)
很多有名的大公司在用
2唐含、通過什么途徑學(xué)習(xí)的Python浅浮?
自學(xué)成才
3、Python和Java捷枯、PHP滚秩、C、C#淮捆、C++等其他語言的對比郁油?
4、簡述解釋型和編譯型編程語言攀痊?
編譯型語言:把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序桐腌。然后,可直接運(yùn)行這個程序苟径。
解釋型語言:把做好的源程序翻譯一句案站,然后執(zhí)行一句,直至結(jié)束棘街!python是一門解釋型語言
5蟆盐、Python解釋器種類以及特點(diǎn)承边?
Cpython(最常用的版本)
Python的官方版本,使用C語言實(shí)現(xiàn)石挂,使用最為廣泛博助,CPython實(shí)現(xiàn)會將源文件(py文件)轉(zhuǎn)換成字節(jié)碼文件(pyc文件),然后運(yùn)行在Python虛擬機(jī)上痹愚。
Jyhton
Python的Java實(shí)現(xiàn)富岳,Jython會將Python代碼動態(tài)編譯成Java字節(jié)碼,然后在JVM上運(yùn)行里伯。
IronPython
Python的C#實(shí)現(xiàn)城瞎,IronPython將Python代碼編譯成C#字節(jié)碼,然后在CLR上運(yùn)行疾瓮。(與Jython類似)
PyPy(特殊)
Python實(shí)現(xiàn)的Python脖镀,將Python的字節(jié)碼字節(jié)碼再編譯成機(jī)器碼。
6狼电、位和字節(jié)的關(guān)系蜒灰?
數(shù)據(jù)存儲是以“字節(jié)”(Byte)為單位,數(shù)據(jù)傳輸是以大多是以“位”(bit肩碟,又名“比特”)為單位强窖,位只能容納兩個值(0或1),位是計算機(jī)存儲的基本單位削祈,是計算機(jī)信息技術(shù)用于計量存儲容量的一種計量單位翅溺,也表示一些計算機(jī)編程語言中的數(shù)據(jù)類型和語言字符;8位 = 1字節(jié)髓抑,一個8位的字節(jié)包含256種可能的0咙崎,1組合。
7吨拍、b褪猛、B、KB羹饰、MB伊滋、GB 的關(guān)系?
1GB = 1024MB队秩;1MB = 1024KB笑旺;1KB = 1024B;1B = 8b
8刹碾、請至少列舉5個 PEP8 規(guī)范(越多越好)燥撞。
1. 縮進(jìn)。4個空格的縮進(jìn)(編輯器都可以完成此功能)迷帜,不使用Tap物舒,更不能混合使用Tap和空格。
2. 每行最大長度79戏锹,換行可以使用反斜杠冠胯,最好使用圓括號。換行點(diǎn)要在操作符的后邊敲回車锦针。
3. 類和top-level函數(shù)定義之間空兩行荠察;類中的方法定義之間空一行;函數(shù)內(nèi)邏輯無關(guān)段落之間空一行奈搜;其他地方盡量不要再空行悉盆。
4. 不要在一句import中多個庫,比如import os, sys不推薦馋吗。
5. 避免不必要的空格焕盟。
9、通過代碼實(shí)現(xiàn)如下轉(zhuǎn)換:
二進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “0b1111011”
>>> int('0b1111011',2)
123
十進(jìn)制轉(zhuǎn)換成二進(jìn)制:v =18
>>> bin(18)
'0b10010'
八進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “011”
>>> int('011',8)
9
十進(jìn)制轉(zhuǎn)換成八進(jìn)制:v =30
>>> oct(30)
'0o36
十六進(jìn)制轉(zhuǎn)換成十進(jìn)制:v = “0x12”
>>> int('0x12',16)
18
十進(jìn)制轉(zhuǎn)換成十六進(jìn)制:v = 87
>>> hex(87)
'0x57'
10宏粤、請編寫一個函數(shù)實(shí)現(xiàn)將IP地址轉(zhuǎn)換成一個整數(shù)
如:10.3.9.12 轉(zhuǎn)換規(guī)則為:
10? ? ? ? ? 00001010
3? ? ? ? ? ? 00000011
9? ? ? ? ? ? 00001001
12? ? ? ? ? 00001100
再將以上二進(jìn)制拼接起來計算十進(jìn)制結(jié)果:00001010 00000011 00001001 00001100 = 脚翘?
def ip(value):
temp = value.split(".")
s =""
? ? for iin temp:
i = (bin(int(i)).lstrip("0b"))
if len(i) !=8:
i = i.zfill(8)
s += i
print(int(s,2))
11、python遞歸的最大層數(shù)绍哎?
python默認(rèn)遞歸最大的層數(shù)是998来农,可以通過sys.setrecursionlimit(1000)來設(shè)置
12、求結(jié)果:
v1 =1 or 3
1
v2 = 1 and 3
3
v3 = 0 and 2 and 1
0
v4 = 0 and 2 or 1
1
v5 = 0 and 2 or 1 or 4
1
v6 = 0 or False and 1
False
13崇堰、ascii沃于、unicode、utf-8海诲、gbk 區(qū)別繁莹?
ASCII碼使用一個字節(jié)編碼,所以它的范圍基本是只有英文字母饿肺、數(shù)字和一些特殊符號 蒋困,只有256個字符。
在表示一個Unicode的字符時敬辣,通常會用“U+”然后緊接著一組十六進(jìn)制的數(shù)字來表示這一個字符雪标。在基本多文種平面(英文為 Basic Multilingual Plane,簡寫 BMP溉跃。它又簡稱為“零號平面”, plane 0)里的所有字符村刨,要用四位十六進(jìn)制數(shù)(例如U+4AE0,共支持六萬多個字符)撰茎;在零號平面以外的字符則需要使用五位或六位十六進(jìn)制數(shù)了嵌牺。舊版的Unicode標(biāo)準(zhǔn)使用相近的標(biāo)記方法,但卻有些微的差異:在Unicode 3.0里使用“U-”然后緊接著八位數(shù),而“U+”則必須隨后緊接著四位數(shù)逆粹。
Unicode能夠表示全世界所有的字節(jié)
GBK是只用來編碼漢字的募疮,GBK全稱《漢字內(nèi)碼擴(kuò)展規(guī)范》,使用雙字節(jié)編碼僻弹。
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼阿浓,又稱萬國碼。由Ken Thompson于1992年創(chuàng)建√U溃現(xiàn)在已經(jīng)標(biāo)準(zhǔn)化為RFC 3629芭毙。UTF-8用1到6個字節(jié)編碼UNICODE字符。用在網(wǎng)頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文卸耘,日文退敦,韓文)。
14蚣抗、字節(jié)碼和機(jī)器碼的區(qū)別侈百?
機(jī)器碼就是計算機(jī)可以直接執(zhí)行,并且執(zhí)行速度最快的代碼忠聚。
字節(jié)碼是一種中間狀態(tài)(中間碼)的二進(jìn)制代碼(文件)设哗。需要直譯器轉(zhuǎn)譯后才能成為機(jī)器碼。
15两蟀、三元運(yùn)算規(guī)則以及應(yīng)用場景网梢?
三元運(yùn)算符就是在賦值變量的時候,可以直接加判斷赂毯,然后賦值
格式:[on_true] if [expression] else [on_false]
res = 值1 if 條件 else 值2
16战虏、列舉 Python2和Python3的區(qū)別?菜鳥教程|python 2.x與3.x的區(qū)別
17党涕、用一行代碼實(shí)現(xiàn)數(shù)值交換
a =1
b = 2
a,b =b, a
18烦感、Python3和Python2中 int 和 long的區(qū)別?
int(符號整數(shù)):通常被稱為是整數(shù)或整數(shù),沒有小數(shù)點(diǎn)的正或負(fù)整數(shù)
long(長整數(shù)):無限大小的整數(shù),這樣寫整數(shù)和一個大寫或小寫的L膛堤。
19手趣、xrange和range的區(qū)別?
1. range和xrange都是在循環(huán)中使用肥荔,輸出結(jié)果一樣绿渣。
2. range返回的是一個list對象,而xrange返回的是一個生成器對象(xrange object)燕耿。
3. xrange則不會直接生成一個list中符,而是每次調(diào)用返回其中的一個值,內(nèi)存空間使用極少誉帅,因而性能非常好淀散。
注意:Python 3.x已經(jīng)去掉xrange右莱,全部用range代替。
20档插、文件操作時:xreadlines和readlines的區(qū)別慢蜓?
二者使用時相同,但返回類型不同阀捅,xreadlines返回的是一個生成器胀瞪,readlines返回的是list
21针余、列舉布爾值為False的常見值饲鄙?
0 , [ ] , " , ( ) , { }
22、字符串圆雁、列表忍级、元組、字典每個常用的5個方法伪朽?
字符串:
words = ‘today is a wonderfulday‘
print(words.strip(‘today‘))#如果strip方法指定一個值的話轴咱,那么會去掉這兩個值
print(words.count(‘a(chǎn)‘))#統(tǒng)計字符串出現(xiàn)的次數(shù)
print(words.index(‘is‘))#找下標(biāo)
print(words.index(‘z‘))#找下標(biāo)如果元素不找不到的話,會報錯
print(words.find(‘z‘))#找下標(biāo)烈涮,如果元素找不到的話朴肺,返回-1
列表:
sample_list = [‘a(chǎn)‘,1,(‘a(chǎn)‘,‘b‘)]? #創(chuàng)建列表
sample_list = [‘a(chǎn)‘,‘b‘,0,1,3]? #? Python 列表操作
value_start = sample_list[0]? #得到列表中的某一個值
end_value = sample_list[-1]? #得到列表中的某一個值
del sample_list[0]? #刪除列表的第一個值
sample_list[0:0] = [‘sample value‘]? #在列表中插入一個值
元組:
#元組也是一個list,他和list的區(qū)別是元組的元素?zé)o法修改
tuple1 = (2,3,4,5,6,4,7)
print(type(tuple1))
print(tuple1[:7])
print(tuple1[:5:-1])
字典
dict = {‘ob1‘:‘computer‘, ‘ob2‘:‘mouse‘, ‘ob3‘:‘printer‘}
#每一個元素是pair坚洽,包含key戈稿、value兩部分。key是Integer或string類型讶舰,value 是任意類型鞍盗。鍵是唯一的拥褂,字典只認(rèn)最后一個賦的鍵值聚假。
D.get(key, 0)? ? ? #同dict[key],多了個沒有則返回缺省值俊马,0鹅颊。[]沒有則拋異常
D.has_key(key)? ? ? #有該鍵返回TRUE敷存,否則FALSE
D.keys()? ? ? ? ? ? #返回字典鍵的列表
D.values()
23、lambda表達(dá)式格式以及應(yīng)用場景堪伍?
lambda表達(dá)式锚烦,通常是在需要一個函數(shù),但是又不想費(fèi)神去命名一個函數(shù)的場合下使用杠娱,也就是指匿名函數(shù)挽牢。
lambda所表示的匿名函數(shù)的內(nèi)容應(yīng)該是很簡單的,如果復(fù)雜的話摊求,干脆就重新定義一個函數(shù)了禽拔,使用lambda就有點(diǎn)過于執(zhí)拗了。
lambda就是用來定義一個匿名函數(shù)的,如果還要給他綁定一個名字的話睹栖,就會顯得有點(diǎn)畫蛇添足硫惕,通常是直接使用lambda函數(shù)。如下所示:
# 需求:將列表中的元素按照絕對值大小進(jìn)行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
print(sorted(list1, key=lambda x: abs(x)))? #[0, -1, -2, 3, -4, 5, -6]
24野来、pass的作用恼除?
1、空語句
2曼氛、保證格式完整
3豁辉、占位語句
25、*arg和**kwarg作用
1舀患、函數(shù)調(diào)用里的*arg和**kwarg:
(1)*arg:元組或列表“出現(xiàn)”
**kwarg:字典“出沒”
(2)分割參數(shù)
2徽级、函數(shù)定義時傳的*arg /**kwarg:
(1)接收參數(shù)
26、is和==的區(qū)別
== 是python標(biāo)準(zhǔn)操作符中的比較操作符聊浅,用來比較判斷兩個對象的value(值)是否相等
is 也被叫做同一性運(yùn)算符餐抢,這個運(yùn)算符比較判斷的是對象間的唯一身份標(biāo)識,也就是id是否相同低匙。
27旷痕、簡述Python的深淺拷貝以及應(yīng)用場景?
字面理解:淺拷貝指僅僅拷貝數(shù)據(jù)集合的第一層數(shù)據(jù)顽冶,深拷貝指拷貝數(shù)據(jù)集合的所有層欺抗。所以對于只有一層的數(shù)據(jù)集合來說深淺拷貝的意義是一樣的,比如字符串渗稍,數(shù)字佩迟,還有僅僅一層的字典、列表竿屹、元祖等.
應(yīng)用場景:比如在CMDB系統(tǒng)中报强,我們定義了一個報警模版call給所有的服務(wù)器使用,此時有一批特殊應(yīng)用的服務(wù)器需要不通的報警參數(shù)拱燃,我們既不想單獨(dú)新建模版來一個一個添加報警參數(shù)秉溉,又不想修改默認(rèn)模版而影響其他機(jī)器的報警閾值。此時我們就需要用深拷貝來完成碗誉。
28召嘶、Python垃圾回收機(jī)制?
Python的GC模塊主要運(yùn)用了“引用計數(shù)”(reference
counting)來跟蹤和回收垃圾哮缺。在引用計數(shù)的基礎(chǔ)上弄跌,還可以通過“標(biāo)記-清除”(mark and
sweep)解決容器對象可能產(chǎn)生的循環(huán)引用的問題。通過“分代回收”(generation
collection)以空間換取時間來進(jìn)一步提高垃圾回收的效率尝苇。
29铛只、Python的可變類型和不可變類型埠胖?
可變:列表、字典
對于可變類型淳玩,無論創(chuàng)建多少個可變類型直撤,只要值相同,都不指向同個內(nèi)存地址(除非進(jìn)行復(fù)制操作蜕着,那么他們將會指向同一個地址)谋竖。
不可變:數(shù)字、字符串承匣、元祖?
對不可變類型的變量重新賦值蓖乘,實(shí)際上是重新創(chuàng)建一個不可變類型的對象,并將原來的變量重新指向新創(chuàng)建的對象(如果沒有其他變量引用原有對象的話(即引用計數(shù)為0)悄雅,原有對象就會被回收)驱敲。
30、求結(jié)果:
v = dict.fromkeys(['k1','k2'],[])
v[‘k1’].append(666)
print(v)
v[‘k1’] = 777
print(v)
{'k1': [666], 'k2': [666]}
{'k1': 777, 'k2': [666]}
31宽闲、求結(jié)果:
def? num():
? ? return [lambda x:i*x for i in range(4)]
print([ m(2) for m in num()])
[6, 6, 6, 6]
32、列舉常見的內(nèi)置函數(shù)握牧?
33容诬、filter、map沿腰、reduce的作用览徒?
34、一行代碼實(shí)現(xiàn)9*9乘法表
print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
35颂龙、如何安裝第三方模塊习蓬?以及用過哪些第三方模塊?
pip install
36措嵌、至少列舉8個常用模塊都有那些躲叼?
time;re企巢;os枫慷;sys;datetime浪规;hashlib或听;pickle;random
37笋婿、re的match和search區(qū)別誉裆?
match 從第一個開始匹配
search 從任何位置匹配
38、什么是正則的貪婪匹配缸濒?
盡量多的匹配
39足丢、求結(jié)果:
a. [ i % 2 for i in range(10) ]
[0,1,0,1,0,1,0,1,0,1]
b. ( i % 2 for i in range(10) )
40元镀、求結(jié)果:
a. 1 or 2
1
b. 1and 2
2
c. 1 < (2==2)
Flase
d. 1 < 2 == 2
True
41、def func(a,b=[]) 這種寫法有什么坑霎桅?
42栖疑、如何實(shí)現(xiàn) “1,2,3”變成 [‘1’,’2’,’3’] ?
43、如何實(shí)現(xiàn)[‘1’,’2’,’3’]變成[1,2,3] ?
[if !supportLineBreakNewLine]
[endif]
44滔驶、比較: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ]的區(qū)別遇革?
45、如何用一行代碼生成[1,4,9,16,25,36,49,64,81,100]?
46揭糕、一行代碼實(shí)現(xiàn)刪除列表中重復(fù)的值?
47萝快、如何在函數(shù)中設(shè)置一個全局變量?
48、logging模塊的作用著角?以及應(yīng)用場景揪漩?
49、請用代碼簡答實(shí)現(xiàn)stack 吏口。
50奄容、常用字符串格式化哪幾種?
51产徊、簡述 生成器昂勒、迭代器、可迭代對象 以及應(yīng)用場景舟铜?
52戈盈、用Python實(shí)現(xiàn)一個二分查找的函數(shù)。
53谆刨、談?wù)勀銓﹂]包的理解塘娶?
54、os和sys模塊的作用痊夭?
55刁岸、如何生成一個隨機(jī)數(shù)?
56生兆、如何使用python刪除一個文件难捌?
57、談?wù)勀銓γ嫦驅(qū)ο蟮睦斫猓?/p>
58鸦难、Python面向?qū)ο笾械睦^承有什么特點(diǎn)根吁?
59、面向?qū)ο笊疃葍?yōu)先和廣度優(yōu)先是什么合蔽?
60击敌、面向?qū)ο笾衧uper的作用?
61拴事、是否使用過functools中的函數(shù)沃斤?其作用是什么圣蝎?
62、列舉面向?qū)ο笾袔聞澗€的特殊方法衡瓶,如:__new__徘公、__init__
63、如何判斷是函數(shù)還是方法哮针?
64关面、靜態(tài)方法和類方法區(qū)別?
65十厢、列舉面向?qū)ο笾械奶厥獬蓡T以及應(yīng)用場景
66等太、1、2蛮放、3缩抡、4、5 能組成多少個互不相同且無重復(fù)的三位數(shù)
67包颁、什么是反射瞻想?以及應(yīng)用場景?
68徘六、metaclass作用内边?以及應(yīng)用場景?
69待锈、用盡量多的方法實(shí)現(xiàn)單例模式。
70嘴高、裝飾器的寫法以及應(yīng)用場景竿音。
71、異常處理寫法以及如何主動跑出異常(應(yīng)用場景)
72拴驮、什么是面向?qū)ο蟮膍ro
73春瞬、isinstance作用以及應(yīng)用場景?
[if !supportLineBreakNewLine]
[endif]
74套啤、寫代碼并實(shí)現(xiàn):
[if !supportLineBreakNewLine]
[endif]
Given
an array of integers, return indices ofthe two numbers such that they add up to a specific target.You may assumethat each input would
have exactly one solution,
and you may notuse the same element twice.
Example:
Given nums = [
2, 7, 11, 15], target = 9,
Because nums[
0] + nums[1] = 2 + 7 = 9,
return [0, 1]
75宽气、json序列化時,可以處理的數(shù)據(jù)類型有哪些潜沦?如何定制支持datetime類型萄涯?
76、json序列化時唆鸡,默認(rèn)遇到中文會轉(zhuǎn)換成unicode涝影,如果想要保留中文怎么辦?
77争占、什么是斷言燃逻?應(yīng)用場景序目?
78、有用過with statement嗎伯襟?它的好處是什么猿涨?
79、使用代碼實(shí)現(xiàn)查看列舉目錄下的所有文件姆怪。
80叛赚、簡述 yield和yield from關(guān)鍵字。
[if !supportLineBreakNewLine]
[endif]
第二部分 網(wǎng)絡(luò)編程和并發(fā)(34題)
[if !supportLineBreakNewLine]
[endif]
1片效、簡述 OSI 七層協(xié)議红伦。
2、什么是C/S和B/S架構(gòu)淀衣?
3昙读、簡述 三次握手、四次揮手的流程膨桥。
4蛮浑、什么是arp協(xié)議?
5只嚣、TCP和UDP的區(qū)別沮稚?
6、什么是局域網(wǎng)和廣域網(wǎng)册舞?
7蕴掏、為何基于tcp協(xié)議的通信比基于udp協(xié)議的通信更可靠?
8调鲸、什么是socket盛杰?簡述基于tcp協(xié)議的套接字通信流程。
9藐石、什么是粘包即供?socket 中造成粘包的原因是什么?哪些情況會發(fā)生粘包現(xiàn)象于微?
10逗嫡、IO多路復(fù)用的作用?
11株依、什么是防火墻以及作用驱证?
12、select勺三、poll雷滚、epoll 模型的區(qū)別?
13吗坚、簡述 進(jìn)程祈远、線程呆万、協(xié)程的區(qū)別 以及應(yīng)用場景?
14车份、GIL鎖是什么鬼谋减?
15、Python中如何使用線程池和進(jìn)程池扫沼?
16出爹、threading.local的作用?
17缎除、進(jìn)程之間如何進(jìn)行通信严就?
18、什么是并發(fā)和并行器罐?
19梢为、進(jìn)程鎖和線程鎖的作用?
20轰坊、解釋什么是異步非阻塞铸董?
21、路由器和交換機(jī)的區(qū)別肴沫?
22粟害、什么是域名解析?
23颤芬、如何修改本地hosts文件悲幅?
24、生產(chǎn)者消費(fèi)者模型應(yīng)用場景及優(yōu)勢站蝠?
25夺艰、什么是cdn?
26沉衣、LVS是什么及作用?
27减牺、Nginx是什么及作用豌习?
28、keepalived是什么及作用?
29拔疚、haproxy是什么以及作用肥隆?
30、什么是負(fù)載均衡稚失?
31栋艳、什么是rpc及應(yīng)用場景?
32句各、簡述 asynio模塊的作用和應(yīng)用場景吸占。
33晴叨、簡述 gevent模塊的作用和應(yīng)用場景。
34矾屯、twisted框架的使用和應(yīng)用兼蕊?
[if !supportLineBreakNewLine]
[endif]
第三部分 數(shù)據(jù)庫和緩存(46題)
[if !supportLineBreakNewLine]
[endif]
1、列舉常見的關(guān)系型數(shù)據(jù)庫和非關(guān)系型都有那些件蚕?
2孙技、MySQL常見數(shù)據(jù)庫引擎及比較?
3排作、簡述數(shù)據(jù)三大范式牵啦?
4、什么是事務(wù)妄痪?MySQL如何支持事務(wù)哈雏?
5、簡述數(shù)據(jù)庫設(shè)計中一對多和多對多的應(yīng)用場景拌夏?
6僧著、如何基于數(shù)據(jù)庫實(shí)現(xiàn)商城商品計數(shù)器?
7障簿、常見SQL(必備)詳見武沛齊博客:https://www.cnblogs.com/wupeiqi/articles/5729934.html
8盹愚、簡述觸發(fā)器、函數(shù)站故、視圖皆怕、存儲過程?
9西篓、MySQL索引種類
10愈腾、索引在什么情況下遵循最左前綴的規(guī)則?
11岂津、主鍵和外鍵的區(qū)別虱黄?
12、MySQL常見的函數(shù)吮成?
13橱乱、列舉 創(chuàng)建索引但是無法命中索引的8種情況。
14粱甫、如何開啟慢日志查詢泳叠?
15、數(shù)據(jù)庫導(dǎo)入導(dǎo)出命令(結(jié)構(gòu)+數(shù)據(jù))茶宵?
16危纫、數(shù)據(jù)庫優(yōu)化方案?
17、char和varchar的區(qū)別种蝶?
18契耿、簡述MySQL的執(zhí)行計劃?
19蛤吓、在對name做了唯一索引前提下宵喂,簡述以下區(qū)別:
[if !supportLineBreakNewLine]
[endif]
select * from tb where name=‘Oldboy-Wupeiqi’
select * from tb where name =
‘Oldboy-Wupeiqi’ limit 1
20、1000w條數(shù)據(jù)会傲,使用limit offset 分頁時锅棕,為什么越往后翻越慢?如何解決淌山?
21裸燎、什么是索引合并?
22泼疑、什么是覆蓋索引德绿?
23、簡述數(shù)據(jù)庫讀寫分離退渗?
24移稳、簡述數(shù)據(jù)庫分庫分表?(水平会油、垂直)
25个粱、redis和memcached比較?
26翻翩、redis中數(shù)據(jù)庫默認(rèn)是多少個db 及作用都许?
27、python操作redis的模塊嫂冻?
28胶征、如果redis中的某個列表中的數(shù)據(jù)量非常大,如果實(shí)現(xiàn)循環(huán)顯示每一個值桨仿?
29睛低、redis如何實(shí)現(xiàn)主從復(fù)制?以及數(shù)據(jù)同步機(jī)制服傍?
30暇昂、redis中的sentinel的作用?
31伴嗡、如何實(shí)現(xiàn)redis集群?
32从铲、redis中默認(rèn)有多少個哈希槽瘪校?
33、簡述redis的有哪幾種持久化策略及比較?
34阱扬、列舉redis支持的過期策略泣懊。
35、MySQL 里有 2000w 數(shù)據(jù)麻惶,redis 中只存20w 的數(shù)據(jù)馍刮,如何保證 redis 中都是熱點(diǎn)數(shù)據(jù)?
36窃蹋、寫代碼卡啰,基于redis的列表實(shí)現(xiàn)先進(jìn)先出、后進(jìn)先出隊列警没、優(yōu)先級隊列匈辱。
37、如何基于redis實(shí)現(xiàn)消息隊列杀迹?
38亡脸、如何基于redis實(shí)現(xiàn)發(fā)布和訂閱?以及發(fā)布訂閱和消息隊列的區(qū)別树酪?
39浅碾、什么是codis及作用?
40续语、什么是twemproxy及作用垂谢?
41、寫代碼實(shí)現(xiàn)redis事務(wù)操作绵载。
42埂陆、redis中的watch的命令的作用?
43娃豹、基于redis如何實(shí)現(xiàn)商城商品數(shù)量計數(shù)器焚虱?
44、簡述redis分布式鎖和redlock的實(shí)現(xiàn)機(jī)制懂版。
45鹃栽、什么是一致性哈希?Python中是否有相應(yīng)模塊躯畴?
46民鼓、如何高效的找到redis中所有以oldboy開頭的key?
[if !supportLineBreakNewLine]
[endif]
第四部分 前端蓬抄、框架和其他(155題)
[if !supportLineBreakNewLine]
[endif]
1丰嘉、談?wù)勀銓ttp協(xié)議的認(rèn)識。
2嚷缭、談?wù)勀銓ebsocket協(xié)議的認(rèn)識饮亏。
3耍贾、什么是magic string ?
4路幸、如何創(chuàng)建響應(yīng)式布局荐开?
5、你曾經(jīng)使用過哪些前端框架简肴?
6晃听、什么是ajax請求?并使用jQuery和XMLHttpRequest對象實(shí)現(xiàn)一個ajax請求砰识。
7能扒、如何在前端實(shí)現(xiàn)輪訓(xùn)?
8仍翰、如何在前端實(shí)現(xiàn)長輪訓(xùn)赫粥?
9、vuex的作用予借?
10越平、vue中的路由的攔截器的作用?
11灵迫、axios的作用秦叛?
12、列舉vue的常見指令瀑粥。
13挣跋、簡述jsonp及實(shí)現(xiàn)原理?
14狞换、是什么cors 避咆?
15、列舉Http請求中常見的請求方式修噪?
16查库、列舉Http請求中的狀態(tài)碼?
17黄琼、列舉Http請求中常見的請求頭樊销?
18、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
19脏款、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
20围苫、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
21、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
22撤师、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
23剂府、看圖寫結(jié)果:
[if !supportLineBreakNewLine]
[endif]
24、django剃盾、flask周循、tornado框架的比較强法?
25、什么是wsgi湾笛?
26、django請求的生命周期闰歪?
27嚎研、列舉django的內(nèi)置組件?
28库倘、列舉django中間件的5個方法临扮?以及django中間件的應(yīng)用場景?
29教翩、簡述什么是FBV和CBV杆勇?
30、django的request對象是在什么時候創(chuàng)建的饱亿?
31蚜退、如何給CBV的程序添加裝飾器?
32彪笼、列舉django orm 中所有的方法(QuerySet對象的所有方法)
33钻注、only和defer的區(qū)別?
34配猫、select_related和prefetch_related的區(qū)別幅恋?
35、filter和exclude的區(qū)別泵肄?
36捆交、列舉django orm中三種能寫sql語句的方法。
37腐巢、django orm 中如何設(shè)置讀寫分離品追?
38、F和Q的作用?
39系忙、values和values_list的區(qū)別诵盼?
40、如何使用django orm批量創(chuàng)建數(shù)據(jù)银还?
41风宁、django的Form和ModeForm的作用?
42蛹疯、django的Form組件中戒财,如果字段中包含choices參數(shù),請使用兩種方式實(shí)現(xiàn)數(shù)據(jù)源實(shí)時更新捺弦。
43饮寞、django的Model中的ForeignKey字段中的on_delete參數(shù)有什么作用孝扛?
44、django中csrf的實(shí)現(xiàn)機(jī)制幽崩?
45苦始、django如何實(shí)現(xiàn)websocket?
46慌申、基于django使用ajax發(fā)送post請求時陌选,都可以使用哪種方法攜帶csrf token?
47蹄溉、django中如何實(shí)現(xiàn)orm表中添加數(shù)據(jù)時創(chuàng)建一條日志記錄咨油。
48、django緩存如何設(shè)置柒爵?
49役电、django的緩存能使用redis嗎?如果可以的話棉胀,如何配置法瑟?
50、django路由系統(tǒng)中name的作用膏蚓?
51瓢谢、django的模板中filter和simple_tag的區(qū)別?
52驮瞧、django-debug-toolbar的作用氓扛?
53、django中如何實(shí)現(xiàn)單元測試论笔?
54采郎、解釋orm中 db first 和 code first的含義?
55狂魔、django中如何根據(jù)數(shù)據(jù)庫表生成model中的類蒜埋?
56、使用orm和原生sql的優(yōu)缺點(diǎn)最楷?
57整份、簡述MVC和MTV
所謂MVC就是把web應(yīng)用分為模型(M),控制器(C),視圖(V)三層;他們之間以一種插件似的籽孙,松耦合的方式連接在一起烈评。
模型負(fù)責(zé)業(yè)務(wù)對象與數(shù)據(jù)庫的對象(ORM),視圖負(fù)責(zé)與用戶的交互(頁面),控制器(C)接受用戶的輸入調(diào)用模型和視圖完成用戶的請求犯建。
? ? ? ? ? ? ? ? ?
Django的MTV模式本質(zhì)上與MVC模式?jīng)]有什么差別讲冠,也是各組件之間為了保持松耦合關(guān)系,只是定義上有些許不同适瓦,Django的MTV分別代表:
? ? ? Model(模型):負(fù)責(zé)業(yè)務(wù)對象與數(shù)據(jù)庫的對象(ORM)
? ? ? Template(模版):負(fù)責(zé)如何把頁面展示給用戶
? ? ? View(視圖):負(fù)責(zé)業(yè)務(wù)邏輯竿开,并在適當(dāng)?shù)臅r候調(diào)用Model和Template
? ? ? 此外谱仪,Django還有一個url分發(fā)器迹炼,它的作用是將一個個URL的頁面請求分發(fā)給不同的view處理熊榛,view再調(diào)用相應(yīng)的Model和Template
58、django的contenttype組件的作用澡罚?
59列荔、談?wù)勀銓estfull 規(guī)范的認(rèn)識卸例?
60、接口的冪等性是什么意思肌毅?
61、什么是RPC姑原?
62悬而、Http和Https的區(qū)別?
63锭汛、為什么要使用django rest
framework框架笨奠?
64、django rest
framework框架中都有那些組件唤殴?
65般婆、django rest framework框架中的視圖都可以繼承哪些類?
66朵逝、簡述 django rest
framework框架的認(rèn)證流程蔚袍。
67、django rest
framework如何實(shí)現(xiàn)的用戶訪問頻率控制配名?
68啤咽、Flask框架的優(yōu)勢?
69渠脉、Flask框架依賴組件宇整?
70、Flask藍(lán)圖的作用芋膘?
71鳞青、列舉使用過的Flask第三方組件?
72为朋、簡述Flask上下文管理流程?
73臂拓、Flask中的g的作用?
74潜腻、Flask中上下文管理主要涉及到了那些相關(guān)的類埃儿?并描述類主要作用?
75融涣、為什么要Flask把Local對象中的的值stack 維護(hù)成一個列表童番?
76精钮、Flask中多app應(yīng)用是怎么完成?
77剃斧、在Flask中實(shí)現(xiàn)WebSocket需要什么組件轨香?
78、wtforms組件的作用幼东?
79臂容、Flask框架默認(rèn)session處理機(jī)制?
80根蟹、解釋Flask框架中的Local對象和threading.local對象的區(qū)別脓杉?
81、Flask中 blinker 是什么简逮?
82球散、SQLAlchemy中的 session和scoped_session 的區(qū)別?
83散庶、SQLAlchemy如何執(zhí)行原生SQL蕉堰?
84、ORM的實(shí)現(xiàn)原理悲龟?
85屋讶、DBUtils模塊的作用?
86须教、以下SQLAlchemy的字段是否正確皿渗?如果不正確請更正:
from datetime importdatetime
fromsqlalchemy.ext.declarative
importdeclarative_base
from sqlalchemy importColumn, 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())
87、SQLAchemy中如何為表設(shè)置引擎和字符編碼没卸?
88羹奉、SQLAchemy中如何設(shè)置聯(lián)合唯一索引?
89约计、簡述Tornado框架的特點(diǎn)诀拭。
90、簡述Tornado框架中Future對象的作用煤蚌?
91耕挨、Tornado框架中如何編寫WebSocket程序?
92尉桩、Tornado中靜態(tài)文件是如何處理的筒占?如:
93、Tornado操作MySQL使用的模塊蜘犁?
94翰苫、Tornado操作redis使用的模塊?
95、簡述Tornado框架的適用場景奏窑?
96导披、git常見命令作用:
97、簡述以下git中stash命令作用以及相關(guān)其他命令埃唯。
98撩匕、git 中 merge 和 rebase命令 的區(qū)別。
99墨叛、公司如何基于git做的協(xié)同開發(fā)止毕?
100、如何基于git實(shí)現(xiàn)代碼review漠趁?
101扁凛、git如何實(shí)現(xiàn)v1.0 、v2.0 等版本的管理闯传?
102令漂、什么是gitlab?
103丸边、github和gitlab的區(qū)別?
104荚孵、如何為github上牛逼的開源項目貢獻(xiàn)代碼妹窖?
105、git中 .gitignore文件的作用?
106收叶、什么是敏捷開發(fā)骄呼?
107、簡述 jenkins 工具的作用?
108判没、公司如何實(shí)現(xiàn)代碼發(fā)布蜓萄?
109、簡述 RabbitMQ澄峰、Kafka嫉沽、ZeroMQ的區(qū)別?
110俏竞、RabbitMQ如何在消費(fèi)者獲取任務(wù)后未處理完前就掛掉時绸硕,保證數(shù)據(jù)不丟失?
111魂毁、RabbitMQ如何對消息做持久化玻佩?
112、RabbitMQ如何控制消息被消費(fèi)的順序席楚?
113咬崔、以下RabbitMQ的exchange type分別代表什么意思?如:fanout烦秩、direct垮斯、topic郎仆。
114、簡述 celery 是什么以及應(yīng)用場景甚脉?
115丸升、簡述celery運(yùn)行機(jī)制。
116牺氨、celery如何實(shí)現(xiàn)定時任務(wù)狡耻?
117、簡述 celery多任務(wù)結(jié)構(gòu)目錄猴凹?
118夷狰、celery中裝飾器 @app.task 和 @shared_task的區(qū)別?
119郊霎、簡述 requests模塊的作用及基本使用沼头?
120、簡述 beautifulsoup模塊的作用及基本使用书劝?
121进倍、簡述 seleninu模塊的作用及基本使用?
122、scrapy框架中各組件的工作流程购对?
123猾昆、在scrapy框架中如何設(shè)置代理(兩種方法)?
124骡苞、scrapy框架中如何實(shí)現(xiàn)大文件的下載垂蜗?
125、scrapy中如何實(shí)現(xiàn)限速解幽?
126贴见、scrapy中如何實(shí)現(xiàn)暫定爬蟲?
127躲株、scrapy中如何進(jìn)行自定制命令片部?
128、scrapy中如何實(shí)現(xiàn)的記錄爬蟲的深度霜定?
129吞琐、scrapy中的pipelines工作原理?
130然爆、scrapy的pipelines如何丟棄一個item對象站粟?
131、簡述scrapy中爬蟲中間件和下載中間件的作用曾雕?
132奴烙、scrapy-redis組件的作用?
133、scrapy-redis組件中如何實(shí)現(xiàn)的任務(wù)的去重切诀?
134揩环、scrapy-redis的調(diào)度器如何實(shí)現(xiàn)任務(wù)的深度優(yōu)先和廣度優(yōu)先?
135幅虑、簡述 vitualenv 及應(yīng)用場景?
136丰滑、簡述 pipreqs 及應(yīng)用場景?
137倒庵、在Python中使用過什么代碼檢查工具褒墨?
138、簡述 saltstack擎宝、ansible郁妈、fabric、puppet工具的作用绍申?
139噩咪、B Tree和B+ Tree的區(qū)別?
140极阅、請列舉常見排序并通過代碼實(shí)現(xiàn)任意三種胃碾。
141、請列舉常見查找并通過代碼實(shí)現(xiàn)任意三種筋搏。
142书在、請列舉你熟悉的設(shè)計模式?
143拆又、有沒有刷過leetcode?
144栏账、列舉熟悉的的Linux命令帖族。
145、公司線上服務(wù)器是什么系統(tǒng)挡爵?
146竖般、解釋 PV、UV 的含義茶鹃?
147涣雕、解釋 QPS的含義?
148闭翩、uwsgi和wsgi的區(qū)別挣郭?
149、supervisor的作用疗韵?
150兑障、什么是反向代理?
151、簡述SSH的整個過程流译。
152逞怨、有問題都去那些找解決方案?
153福澡、是否有關(guān)注什么技術(shù)類的公眾號叠赦?
154、最近在研究什么新技術(shù)革砸?
155除秀、是否了解過領(lǐng)域驅(qū)動模型?
統(tǒng)計:80 + 34 + 46 + 155 = 315題