Python練習題(二)

2022-08-31 06:15:08 字數 2036 閱讀 9317

1. python 裡 match 與 search 的區別?

match()函式只檢測 re 是不是在 string 的開始位置匹配,

search()會掃瞄整個 string 查詢匹配;

也就是說 match()只有在 0 位置匹配成功的話才有返回,

如果不是開始位置匹配成功的話,match()就返回 none。

2.什麼是死鎖呢?

若干子執行緒在系統資源競爭時,都在等待對方對某部分資源解除占用狀態,結果是誰也不願先解鎖,

互相幹等著,程式無法執行下去,這就是死鎖。

gil 鎖(有時候,面試官不問,你自己要主動說,增加 b 格,盡量別一問一答的尬聊,不然最後等

到的一句話就是:你還有什麼想問的麼?)

gil 鎖 全域性直譯器鎖(只在 cpython 裡才有)

作用:限制多執行緒同時執行,保證同一時間只有乙個執行緒執行,所以 cpython 裡的多執行緒其實是偽

多執行緒!

3.flask 專案中如何實現 session 資訊的寫入?

flask 中有三個 session:

第乙個:資料庫中的 session,例如:db.session.add()

第二個:在 flask_session 擴充套件中的 session,使用:from flask_session importsession,使用

第三方擴充套件的 session 可以把資訊儲存在伺服器中,客戶端瀏覽器中只儲存 sessionid。

第三個:flask 自帶的 session,是乙個請求上下文, 使用:from flask import session。自帶的

session 把資訊加密後都儲存在客戶端的瀏覽器 cookie 中。

4.python 函式呼叫的時候引數的傳遞方式是值傳遞還是引用傳遞?

python 的引數傳遞有:位置引數、預設引數、可變引數、關鍵字引數。

函式的傳值到底是值傳遞還是引用傳遞,要分情況:

不可變引數用值傳遞:

像整數和字串這樣的不可變物件,是通過拷貝進行傳遞的,因為你無論如何都不可能在原處改變

不可變物件

可變引數是引用傳遞的:

比如像列表,字典這樣的物件是通過引用傳遞、和 c 語言裡面的用指標傳遞陣列很相似,可變物件

能在函式內部改變。

5.什麼是 lambda 函式?它有什麼好處?

lambda 函式是匿名函式;使用 lambda 函式能建立小型匿名函式。這種函式得名於省略了用 def

宣告函式的標準步驟;是得程式扁平化,已於結合其他**

4g 記憶體怎麼讀取乙個 5g 的資料?

方法一:

可以通過生成器,分多次讀取,每次讀取數量相對少的資料(比如 500mb)進行處理,處理結束後

在讀取後面的 500mb 的資料。

方法二:

可以通過 linux 命令 split 切割成小檔案,然後再對資料進行處理,此方法效率比較高。可以按照行

數切割,可以按照檔案大小切割。

6.說明一下 os.path 和 sys.path 分別代表什麼?平時的操作有哪些?

os.path 主要是用於對系統路徑檔案的操作。

sys.path 主要是對 python 直譯器的系統環境引數的操作(動態的改變 python 直譯器搜尋路徑)。

os.path.join()將分離的各部分組合成乙個路徑名

os.mkdir/makedirs 建立目錄/多層目錄

os.rmdir/removedirs 刪除目錄/多層目錄

sys.version 獲取 python 解釋程式的版本資訊

sys.modules 返回系統匯入的模組字段,key 是模組名,value 是模組

7.請簡述什麼是並行,什麼是併發。python中,有幾種多工模式?分別是並行還是併發?

並行:同一時刻多個任務同時執行

併發:在同一時間間隔內多個任務都在執行,但是並不會在同一時刻同時執行,存在交替執行的情況。

python中多工有多程序(並行),多執行緒(併發),多協程(併發)

實現並行的庫是什麼(multiprocessing),實現併發的庫是什麼(threading)

python練習題(二)

1.企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高 於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可可提 成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於 40萬元的部分,可提成3 60萬到10...

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...