CSDN官方发布的《180道Python面试题,助你一举通过面试》浅析一
CSDN官方發(fā)布的《180道Python面試題,助你一舉通過面試!》淺析(一)
1. 列出 5 個常用 Python 標準庫?
2. Python 內建數據類型有哪些?
3. 簡述 with 方法打開處理文件幫我們做了什么?
4. 列出 Python 中可變數據類型和不可變數據類型,為什么?
5. Python 獲取當前日期?
6. 統(tǒng)計字符串每個單詞出現的次數
7. 用 python 刪除文件和用 linux 命令刪除文件方法
8. 寫一段自定義異常代碼
9. 舉例說明異常模塊中 try except else finally 的相關意義
10. 遇到 bug 如何處理
參考文獻
[1]https://blog.csdn.net/csdngkk/article/details/99116607.
[2]https://blog.csdn.net/weixin_41460135/article/details/100030741.
[3]https://www.cnblogs.com/sea-stream/p/11188732.html.
[4]https://blog.csdn.net/whjay520/article/details/82996665.
學習python中有什么不懂的地方,小編這里推薦加小編的python學習群:895,817, 687
有任何不懂的都可以在里面交流,還有很好的視頻教程pdf學習資料,大家一起學習交流!
這是加入CSDN的第一篇博文,對python的使用也僅限于實驗室的項目及課程中的大作業(yè),盡量通過查閱資料和官方文檔減少紕漏,一起討論進步!
引用其他博主的文章內容都加了角標,并將鏈接附在參考文獻
1. 列出 5 個常用 Python 標準庫?
os:這個Lib提供了一些方便使用操作系統(tǒng)相關功能的函數。操作路徑的os.path模塊會經常用到。
io:這個Lib提供了 Python 用于處理各種 I/O 類型的主要工具。三種主要的 I/O類型分別為: 文本 I/O, 二進制 I/O 和 原始 I/O。
re:模塊提供了與 Perl 語言類似的正則表達式匹配操作。模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字節(jié)串 (bytes)。 但不能混用。
- 對于反斜杠字符可以采用r’\n’來表示’‘和’n’。
- 重復修飾符 (*, +, ?, {m,n}, 等) 不能直接嵌套,特殊字符(.^$?等)的排列順序和組合方式
- 常用的函數:match,search,split,findall等,編譯后的正則表達式對象支持的方法和屬性。
sys:模塊提供了一些變量和函數。這些變量可能被解釋器使用,也可能由解釋器提供。這些函數會影響解釋器。這個模塊總是可用的。
math:模塊提供了對C標準定義的數學函數的訪問。這些函數不適用于復數,如果你需要計算復數,請使用 cmath 模塊中的同名函數。
struct:模塊可以執(zhí)行 Python 值和以 Python bytes 對象表示的 C 結構之間的轉換。 這可以被用來處理存儲在文件中或是從網絡連接等其他來源獲取的二進制數據。 它使用 格式字符串 作為 C 結構布局的精簡描述以及與 Python 值的雙向轉換。
- struck.pack(format,v1,v2,…)返回一個 bytes 對象,其中包含根據格式字符串 format 打包的值 v1,
v2, … 參數個數必須與格式字符串所要求的值完全匹配。 - struck.unpack(format,buffer)根據格式字符串 format 從緩沖區(qū) buffer 解包(假定是由
pack(format, …) 打包)。結果為一個元組,即使其只包含一個條目。 緩沖區(qū)的字節(jié)大小必須匹配格式所要求的大小。 - 模塊還定義了以下類型:class struct.Struct(format)返回一個新的 Struct 對象,它會根據格式字符串
format 來寫入和讀取二進制數據。 一次性地創(chuàng)建 Struct 對象并調用其方法相比使用同樣的格式調用 struct
函數更為高效,因為這樣格式字符串只需被編譯一次。
random:該模塊實現了各種分布的偽隨機數生成器。不應將此模塊的偽隨機生成器用于安全目的。有關安全性或加密用途,請參閱 secrets 模塊。
datatime:模塊提供了可以通過多種方式操作日期和時間的類。在支持日期時間數學運算的同時,實現的關注點更著重于如何能夠更有效地解析其屬性用于格式化輸出和數據操作。
2. Python 內建數據類型有哪些?
整型(int)、布爾型(bool)、字符串(str)、列表(list)、元組(tuple)、字典(dict)。
3. 簡述 with 方法打開處理文件幫我們做了什么?
with方法打開文件,可以在我們對文件操作完成后,自動關閉文件,保證文件的安全性。[2]
- 列出 Python 中可變數據類型和不可變數據類型,為什么?
可變類型(mutable):變量進行append、+=等這種操作后 ,等于 改變了變量的值,而不會新建一個對象,變量引用的對象的地址也不會變化,不過對于相同的值的不同對象,在內存中則會存在不同的對象,即每個對象都有自己的地址,相當于內存中對于同值的對象保存了多份,這里不存在引用計數,是實實在在的對象。 - list
- dict
- set
- byte array
- user-defined classes (除非是特別定義的不可變)
不可變類型(immutable):改變了變量的值 ,等于新建了一個對象,而對于相同的值的對象,在內存中則只有一個對象(一個地址)。
- int
- float
- decimal
- complex
- bool
- string
- tuple
- range
- frozenset
- bytes[3]
- Python 獲取當前日期?
5. Python 獲取當前日期?
from time import localtime,strftime
strftime("%Y-%m-%d", localtime())
OUT:‘2019-09-22’
- 統(tǒng)計字符串每個單詞出現的次數
Python 統(tǒng)計字符串里每個單詞出現的次數的三種方法:[4]
7. 用 python 刪除文件和用 linux 命令刪除文件方法
Python刪除文件的方法:
- os.remove(path, *, dir_fd=None):如果path是目錄,則會引發(fā)
IsADirectoryError警告,應該使用使用rmdir()刪除目錄。
Linux刪除文件方法:
- 簡單刪除:rm [選項] 文件
- 徹底刪除:shred -u -z [file name]
8:寫一段自定義異常代碼
程序可以通過創(chuàng)建新的異常類來命名它們自己的異常。異常通常應該直接或間接地從 Exception 類派生。在創(chuàng)建可能引發(fā)多個不同錯誤的模塊時,通常的做法是為該模塊定義的異常創(chuàng)建基類,并為不同錯誤條件創(chuàng)建特定異常類的子類:(Error是其他兩個異常的基類)
9. 舉例說明異常模塊中 try except else finally 的相關意義
- try:執(zhí)行 try 子句( try 和 except 關鍵字之間的(多行)語句)。如果沒有異常發(fā)生,則跳過 except 子句 并完成
try 語句的執(zhí)行。如果在執(zhí)行 try 子句時發(fā)生了異常,則跳過該子句中剩下的部分。可以在此處嘗試捕獲和處理異常。 - except:捕獲try代碼塊執(zhí)行時所發(fā)生的異常。
- else:try … except 語句有一個可選的 else 子句,在使用時必須放在所有的 except 子句后面。對于在try
子句不引發(fā)異常時必須執(zhí)行的代碼來說很有用。使用 else 子句比向 try 子句添加額外的代碼要好,因為它避免了意外捕獲不是由 try …
except 語句保護的代碼引發(fā)的異常。 - finally:finally 子句在任何情況下都會被執(zhí)行。 第三個例子兩個字符串相除所引發(fā)的 TypeError 不會由 except
子句處理,因此會在 finally 子句執(zhí)行后被重新引發(fā)。在實際應用程序中,finally
子句對于釋放外部資源(例如文件或者網絡連接)非常有用,無論是否成功使用資源。
10. 遇到 bug 如何處理
1、根據編輯器報錯的異常類型和異常發(fā)生位置回溯檢查。
2、根據異常信息不能明確錯誤原因時,重新梳理程序邏輯,必要時通過設置斷點或加入print()查看程序中語句運行結果。
3、用try…except…排查。(額,沒用過)
3、在CSDN、論壇、貼吧搜索類似bug。
總結
以上是生活随笔為你收集整理的CSDN官方发布的《180道Python面试题,助你一举通过面试》浅析一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Selenium3 + Python3自
- 下一篇: 这可能是最全面的 python 字符串拼