Q.1. 什么是 Flask?
Flask 是一個使用 Python 編寫的輕量級 Web 應用框架,使用 BSD 授權。其 WSGI 工具箱采用 Werkzeug,模板引擎則使用 Jinja2。除了 Werkzeug 和 Jinja2 以外幾乎不依賴任何外部庫。因為 Flask 被稱為輕量級框架。
Flask 的會話會話使用簽名 cookie 來允許用戶查看和修改會話內容。它會記錄從一個請求到另一個請求的信息。但如果要修改會話,則必須有密鑰 Flask.secret_key。
Q.1. 如何在 Python 中管理內存?
Python 用一個私有堆內存空間來放置所有對象和數據結構,我們無法訪問它。由解釋器來管理它。不過使用一些核心 API,我們可以訪問一些 Python 內存管理工具控制內存分配。
Q.3. 當退出 Python 時是否釋放所有內存分配?
答案是否定的。那些具有對象循環引用或者全局命名空間引用的變量,在 Python 退出是往往不會被釋放. 另外不會釋放 C 庫保留的部分內容。
Q.4. 能否解釋一下 args 和 *kwargs?
如果我們不知道將多少個參數傳遞給函數,比如當我們想傳遞一個列表或一個元組值時,就可以使用args。
3 2 1 4 7 當我們不知道將會傳入多少關鍵字參數時,使用*kwargs 會收集關鍵字參數。
a.1 b.2 c.7 使用 args 和 kwargs 作為參數名只是舉例,可以任意替換。 對于 Python 的基礎題任何疑問,請在評論區提問。
Q.5. 什么是負索引?
我們先創建如下列表:
與正索引不同,負索引是從右邊開始檢索。
6 同樣可以用于列表的切片:
[3, 4, 5, 6, 7]
Q.6. 如何隨機打亂列表中元素,要求不引用額外的內存空間?
我們用 random 包中的 shuffle 函數來實現。
[3, 4, 8, 0, 5, 7, 6, 2, 1]
Q.7. 解釋 Python 中的 join 和 split 函數
join 函數可以將指定的字符添加到字符串中。
‘1,2,3,4,5’
split 函數可以用指定的字符分割字符串
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
Q.8. 解釋 Python 中的//,%和**運算符
//運算符執行地板除法,返回結果的整數部分 (向下取整)。
3 用/符號除法結果為 3.5。 符號表示取冪. ab 返回 a 的 b 次方
% 是取模符號。返回除法后的余數。
6
Q.9. 如何在 Python 使用多進制數字?
除十進制以外,在 Python 中還可以使用二進制、八進制、十六進制。
1.二進制數有 0 和 1 組成,我們使用 0b 或 0B 前綴表示二進制數
10
使用 bin 函數可以將數字轉換為二進制
‘0b1111’
2.八進制數由數字 0-7 組成,使用前綴 0o 或 0O 表示 8 進制數
‘0o10’
3.十六進數由數字 0-15 組成,使用前綴 0x 或者 0X 表示 16 進制數
‘0x10’
‘0xf’
Q.10. 如何獲取字典中的所有鍵?
使用 keys 來獲取字典中的所有鍵
Q.11. 簡述面向對象中new和init區別
init是初始化方法,創建對象后,就立刻被默認調用了,可接收參數。
(1、new至少要有一個參數cls,代表當前類,此參數在實例化時由Python解釋器自動識別。
(2、new必須要有返回值,返回實例化出來的實例,這點在自己實現new時要特別注意,可以return父類(通過super(當前類名, cls))new出來的實例,或者直接是object的new出來的實例。
(3、init有一個參數self,就是這個new返回的實例,init在new的基礎上可以完成一些其它初始化的動作,init不需要返回值。
(4、如果new創建的是當前類的實例,會自動調用init函數,通過return語句里面調用的new函數的第一個參數是cls來保證是當前類實例,如果是其他類的類名,;那么實際創建返回的就是其他類的實例,其實就不會調用當前類的init函數,也不會調用其他類的init函數。
Q.12.列出常見MySQL數據存儲引擎
InnoDB:支持事務處理,支持外鍵,支持崩潰修復能力和并發控制。如果需要對事務的完整性要求比較高(比如銀行),要求實現并發控制(比如售票),那選擇InnoDB有很大的優勢。如果需要頻繁的更新、刪除操作的數據庫,也可以選擇InnoDB,因為支持事務的提交(commit)和回滾(rollback)。
MyISAM:插入數據快,空間和內存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM能實現處理高效率。如果應用的完整性、并發性要求比 較低,也可以使用。
MEMORY:所有的數據都在內存中,數據的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇MEMOEY。它對表的大小有要求,不能建立太大的表。所以,這類數據庫只使用在相對較小的數據庫表。