什麼是 Python 模組?它與庫有什麼區別?
對於初學者來說,理解 Python 模組和庫的概念可能比較困難。從放大內容可以看出,它們都是程式碼的集合。但它們之間存在顯著的區別。
在本文中,我們將向您展示 Python 模組和庫之間的主要區別。
Python 模組和庫
現實世界中的程式非常複雜。即使是簡單的軟體也包含數千行程式碼。因此,以連續流的方式編寫程式碼對於程式設計師和開發人員來說難以理解。開發人員利用模組化程式設計來促進學習並使其邏輯上分離。這是一種將大型編碼任務分解成更短、更邏輯、更靈活的子任務的方法。
Python 易用性是其主要目標之一。因此,Python 擁有如此多的模組和庫。
Python 中的模組
模組是將相關程式碼打包在一起的 Python 程式的集合。在模組中,程式設計師可以定義函式、類或變數。在模組中容納可執行的程式碼也非常棒。換句話說,它們是包含有效 Python 定義和語句的 Python 檔案。建立這些檔案時,會附加字尾 .py。透過將相關程式碼分組到模組中,程式碼變得更容易理解和實現。它還以邏輯方式組織程式碼。
模組分為兩種型別。
- 預定義模組(內建模組)
- 使用者定義模組
- 外部模組
預定義模組
這些也稱為內建模組。Python 擁有大量內建模組。程式設計師可以透過在 Python 應用程式中呼叫其名稱以及關鍵字“import”來使用這些模組。例如,import math。大多數內建 Python 模組是用 C 編寫的,然後與 Python 直譯器結合使用,以允許直譯器與它們一起工作。
Math、datetime、statistics、random、os、sys 等都是常用的內建 Python 模組。
示例
# importing sqrt, factorial functions from math module from math import sqrt, factorial # printing the square root of 16 using sqrt() function print('The square root of 16 = ',sqrt(16)) # printing the factorial of 5 using factorial() function print('The factorial of 5 = ',factorial(5))
輸出
執行後,上述程式將生成以下輸出:
('The square root of 16 = ', 4.0) ('The factorial of 5 = ', 120)
使用者定義模組
Python 為其程式設計師提供的另一個優勢是能夠建立使用者定義的模組。Python 使程式設計師能夠自定義自己的操作並對其進行控制。程式設計師可以在使用者定義的模組中設計自己的函式、變數和類的集合。
匯入使用者定義模組的技術與匯入預定義模組的技術相同。
示例
sampleModule.py
def sampleFunction(givenValue): print("The values passed to the function is:", givenValue)
編譯器程式碼
import sampleModule sampleModule.sampleFunction(10)
輸出
執行後,上述程式將生成以下輸出:
首先,我們建立了一個名為sampleModule.py的模組。在模組中,我們定義了一個名為sampleFunction的函式,它以一個值作為引數並列印它。
之後,我們使用編譯器匯入了之前建立的模組sampleModule。匯入模組後,我們可以使用 (.) 運算子訪問其所有函式。
因此,我們透過傳遞一些隨機值作為引數來呼叫sampleModule的sampleFunction,然後該函式列印引數的值。
外部模組
外部模組必須從外部下載。它們不像內建模組那樣已經存在。安裝它們非常簡單,可以在編譯器終端中使用“pip install module_name”命令完成。由於有如此多的模組可用,即使對於最好的程式設計師來說,熟悉所有模組似乎也是很有幫助的。因此,您可以搜尋模組以查詢和使用它們,以滿足您的需求。您不必記住所有內容,只需在需要時搜尋網路即可。
示例
Emoji 模組
表情符號已成為表達和增強簡單、乏味的文字的一種方式。現在,同樣的寶石也可以用於 Python 程式中。是的,就是這樣!現在您擁有在程式碼中使用表情符號的終極方法。為此,您需要安裝 Emoji 模組。
安裝
pip install emoji
以下程式使用 emoji 模組打印表情符號:
# Importing emojize function from emoji module from emoji import emojize # Passing name of emoji as an argument to the emojize() function print(emojize(":thumbs_up:"))
輸出
執行後,上述程式將生成以下輸出:
庫
庫是一個總稱,它包含一組可重用的 Python 程式碼/指令。
Python 庫通常是一組類似的模組,它們在一個名稱下組合在一起。開發人員通常使用它來與社群共享可重用的程式碼。這消除了從頭開始編寫 Python 程式碼的需要。
開發人員和社群研究人員可以在同一領域構建自己的一組有用的函式。當程式設計師和開發人員在其機器上安裝 Python 直譯器時,會包含標準庫。Python 庫包括 matplotlib、Pygame、Pytorch、Requests、Beautifulsoup 等。
示例
# impoting matplotlib library with an alias name import matplotlib.pyplot as matplot # input first list inputList_1 = [1, 4, 6, 8] # input first list inputList_2 = [2, 6, 3, 9] # plotting the inputList_1, inputList_2 values by taking inputList_1 on x-axis # and inputList_2 on y-axis. matplot.plot(inputList_1, inputList_2) # giving the label/name for x-axis matplot.xlabel('X-axis') # giving the label/name for y-axis matplot.ylabel('Y-axis') # giving the title of the plot matplot.title('Plot for Data Visualization') # displaying the graph matplot.show()
輸出
執行後,上述程式將生成以下輸出:
模組和庫之間的區別
下表顯示了 Python 中模組和庫之間的一些主要區別:
模組 | 庫 |
---|---|
模組是一組具有 .py 副檔名的程式碼或函式。 |
庫是相關模組或包的集合。 |
它們被程式設計師和開發人員使用。 |
庫被社群成員、開發人員和研究人員使用。 |
使用模組使程式碼更易於閱讀。 |
庫對易讀性沒有貢獻。 |
模組是程式設計師可以匯入以重用其程式碼或語句集的功能的邏輯組。 |
庫使使用者能夠重用邏輯相關的程式碼集合。 |
當 Python 程式設計師匯入模組時,直譯器會在各個位置搜尋模組的定義或主體。 |
在我們可以使用庫的模組或包之前,我們必須先將它們安裝到我們的 Python 專案中。我們通常使用 pip install 命令。 |
模組通常是用 Python 編寫的,包含有效的語句或程式碼。 |
庫,尤其是標準庫,通常是用 C 或 Python 開發的。 |
建立模組的基本目標是防止 DRY,即“不要重複自己”。 |
庫沒有這樣的目標。 |
要返回一個包含模組中指定的函式名稱的字串的已排序列表,我們可以使用 Python 的內建 dir() 函式。 |
沒有顯式函式可以返回庫中模組的數量。即使這樣,程式設計師也可以使用 help() 函式獲取一些資訊。 |
常用的內建 Python 模組包括os、sys、math、random等。 |
常用的內建 Python 庫包括Pygame、Pytorch、matplotlib等。 |
結論
在本文中,我們透過示例瞭解了模組和庫。我們還了解了模組和庫之間的區別。