python 面試總結
金* python開發工程師:
1. 字符串連接+和join的區別:
主要考察兩種實現方式內存管理:
字符串對象是不可改變的,Python創建一個字符串後,你不能把這個字符中的某一部分改變。任何對字符串的操作包括‘+‘操作符, 每次‘+’連接時都將申請一個內存空間,創建一個新的字符串對象存入,而不是改變原來的對象.
‘ ‘.join([]),使用列表拼接,列表是可以改變的,因此使用‘ ‘.join([])連接成字符串,申請了一次內存空間,內建了一次,節省了很多資源和時間。
NOTE:字符串不可改變的現象其實這也是有變通的辦法的,可以用_strlist=list(str)這個內建函數把str變為由單個字符為成員的list,這樣的話就可以使用_strlist[3]=‘a’的方式改變值,然後再使用‘ ‘.join(_strlist)還原成字符串。
2.如何判斷某個SQL查詢命中已定義的索引:
3. Innodb和MyIASM引擎的差別(主要問索引方面):
數據結構都是B+Tree
MyIASM,B+Tree數據結構中存儲的內容是數據的地址值,也就是索引和實際的數據是分開的,使用索引指向數據,這種索引模式稱為非聚集索引。
Innodb , B+Tree數據結構中存儲的是實際數據,這種索引被稱為聚集索引。
聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致,聚集索引表記錄的排列順序與索引的排列順序一致的.插入比非聚集索引慢,查詢比其快;
4.裝飾器的實現:
5.問到docker,沒有了解,回答不上來
6.contentmanger
豆* Python開發工程師:
按指定number,求字符串中等於number個數的字符串最長子串。
def get_str(s, n): i = n _start = 0 _list =[] while True: if i <= len(s) and _start <= len(s): _str = len(set(s[_start:i])) if _str == n: _list.append(s[_start:i]) i += 1 elif _str < n: i += 1 else: _start += 1 i = _start + n else: break _list = sorted(_list, key=lambda x:len(x)) return _list[-1]
函數實現?,*通配符。
設計文章,用戶推薦信息表結構:
I.寫出某文章所有推薦用戶SQL查詢語句.
II.寫出某個用戶所有推薦,按時間倒序排序語句.
III.刪除謀篇內容和相關推薦.
python 面試總結