基礎小白快速入門Python------>模塊的作用和意義

模塊,

這個詞聽起來是如此的高大威猛,以至于萌新小白見了瑟瑟發抖,本草履蟲見了都直搖頭,好像聽上去很難的樣子,但是但是,年輕人,請聽本少年細細講述,他只是看起來很難,實際上也有一點難

在Python開發中,我們其實經常使用到模塊這個東西,當我們學習到python的中后期,會覺得不同的模塊,哎呀哎呀,頭好大好大,其實,最原始最基本的模塊兒也只不過是那一個最基礎,最原始,最狂野的helloworld.py

沒錯,就是helloworld.py? ?

在我們最先學習python的時候,我們就使用了模塊兒而不自知,如今經過我說一嘴,你不僅知道了你使用了最基本的模塊,也許你還會悟出一個道理

你使用了很多模塊兒。

那么,模塊究竟是個啥?

聽聞helloworld.py也算模塊,我們不禁質疑到,小小的helloworld.py也算模塊?

當然讓然,

首先helloworld.py是一個文件

其次helloworld.py還包含了語句

最后helloworld.py里面還有一個print輸出函數

這就是一個最基本的模塊

簡單的來一個helloworld

這上面的.py就是模塊

helloworld是最小最原始的模塊

所以我們日常寫的代碼都算是一個小模塊

模塊,是一種組織代碼的方式,能夠讓我們的代碼更高效的運行,是一種能夠牛逼的手法,模塊通常用.py來表明文件格式,里面包含不同函數和不同語句,類,以及變量,來實現我們想要的功能

可是可是,往往學到后期,我們經常被庫,函數,模塊搞得頭很大

這三者又有怎么樣的聯系呢?怎么個事?

同學同學,別急別急,在學習編程的過程中,庫(Library)、函數(Function)和模塊(Module)是經常會遇到的三個概念,

它們之間有著緊密的聯系,但又各自有不同的職責和特點。

這三者是個啥?


1. **函數(Function)**:
函數是編程語言中用于執行特定任務的代碼塊。它可以接受輸入參數,并可以返回一個結果。函數是模塊或程序的一部分,它可以被重復調用,以執行具體的操作,如數學計算、數據處理等。


2. **模塊(Module)**:
模塊是包含了一組相關函數、變量和對象的文件它可以被其他程序或模塊導入使用由于我們可能在一個文件中導入多個文件,一個模塊中導入很多模塊,這是我們會覺得很難,但搞清楚具體的概念發現,哦哦哦~原來,不過如此。模塊的主要目的是為了代碼的復用和組織,它可以被看作是自包含的代碼庫。在大型項目中,使用模塊可以幫助開發者組織和管理代碼,提高開發效率。


3. **庫(Library)**:
庫是一組為了特定目的而編寫的模塊的集合它提供了一系列預先編寫好的函數和對象,以便開發者可以使用這些功能而不需要從頭編寫代碼。庫通常是為了處理常見的任務或者實現某些復雜的功能而編寫的。比如,Web開發中的Django庫、數據分析中的NumPy庫等。

import tkinter as tk
import randomdef main():root = tk.Tk()root.title("猜數字游戲")target = random.randint(1, 100)attempts = 0guess = Nonelabel = tk.Label(root, text="猜數字游戲開始!數字范圍是1到100。", font=("Arial", 14))label.pack(pady=20)entry = tk.Entry(root, font=("Arial", 16), width=10)entry.pack(pady=10)def check_guess():global guess, attemptsguess_str = entry.get()try:guess = int(guess_str)except ValueError:label.config(text="輸入有誤,請輸入一個有效的數字。")returnattempts += 1if guess < target:label.config(text="猜小了!請再試一次。")elif guess > target:label.config(text="猜大了!請再試一次。")else:label.config(text=f"恭喜你,猜對了!數字是{target}。你一共猜了{attempts}次。")reset_button.config(state="normal")check_button = tk.Button(root, text="檢查", command=check_guess, font=("Arial", 16))check_button.pack(pady=10)def reset():# 這里是重置函數的代碼passreset_button = tk.Button(root, text="重置", command=reset, font=("Arial", 16), state="disabled")reset_button.pack(pady=10)def reset():global attempts, guessattempts = 0guess = Nonelabel.config(text="猜數字游戲開始!數字范圍是1到100。")entry.delete(0, tk.END)reset_button.config(state="disabled")root.mainloop()if __name__ == "__main__":main()

代碼有點兒小問題哈,但不影響本草履蟲分享模塊兒,不過有大神愿意斧正我也是非常開心的

這個猜數字游戲里面

這就是咱們定義的函數

這就是咱們導入的模塊和庫


這三者的聯系:


- **函數**是模塊的一部分,模塊中可以包含多個函數。
- **模塊**可以被看作是較小型的庫,一個庫是由多個模塊組成的。
- **庫**則是由多個模塊和函數組成的,它提供了更高級別的抽象,使得開發者可以更容易地使用特定的功能。


在實際應用中,我們要根據需要選擇合適的庫,并使用其中的函數和模塊來完成特定的任務。例如,在Python中進行數據分析時,可能會使用到NumPy庫中的函數來執行矩陣運算,使用Pandas模塊來處理數據表格。


理解這三者的關系,有助于我們更好地組織代碼,選擇合適的方法來解決問題,提高編程效率和代碼質量。在學習的過程中,應當逐步理解和掌握它們的特點和應用方式。

那么又有人說了,憑啥我只能用別人的,我也想用我自己的,不行嗎

當然可以,非常可以,你只需要寫完以后簡單的來一個import? ?加上你的模塊名就成了

比如

import? helloworld

沒人說你啥的

我們就先淺淺的創建一個my_module吧

# my_module.pydef greet(name):return "Hello, " + name + "!"class Dog:def __init__(self, name):self.name = namedef bark(self):return "Woof!"

在來創建另一個main

# main.pyimport my_module# 使用my_module中定義的函數
print(my_module.greet("World"))# 創建my_module中定義的Dog類的實例
my_dog = my_module.Dog("Fido")
print(my_dog.bark())

這是兩者的文件名

這是運行后的效果

你學會了嗎

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714659.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714659.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714659.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GO-接口

1. 接口 在Go語言中接口&#xff08;interface&#xff09;是一種類型&#xff0c;一種抽象的類型。 interface是一組method的集合&#xff0c;接口做的事情就像是定義一個協議&#xff08;規則&#xff09;&#xff0c;只要一臺機器有洗衣服和甩干的功能&#xff0c;我就稱它…

【go語言開發】swagger安裝和使用

本文主要介紹go-swagger的安裝和使用&#xff0c;首先介紹如何安裝swagger&#xff0c;測試是否成功&#xff1b;然后列出常用的注釋和給出使用例子&#xff1b;最后生成接口文檔&#xff0c;并在瀏覽器上測試 文章目錄 安裝注釋說明常用注釋參考例子 文檔生成格式化文檔生成do…

C++從零開始的打怪升級之路(day39)

這是關于一個普通雙非本科大一學生的C的學習記錄貼 在此前&#xff0c;我學了一點點C語言還有簡單的數據結構&#xff0c;如果有小伙伴想和我一起學習的&#xff0c;可以私信我交流分享學習資料 那么開啟正題 今天分享的是關于模板的知識點 1.非類型模板參數 模板參數分為…

大模型生成,Open API調用

大模型是怎么生成結果的 通俗原理 其實&#xff0c;它只是根據上文&#xff0c;猜下一個詞&#xff08;的概率&#xff09;…… OpenAI 的接口名就叫【completion】&#xff0c;也證明了其只會【生成】的本質。 下面用程序演示【生成下一個字】。你可以自己修改 prompt 試試…

高并發下的 AtomicReference 性能陷阱

介紹 Java 提供了 AtomicInteger/AtomicLong 在并發編程里經常用到&#xff0c;它們封裝了對 int 和 long 的原子操作。 Java 還提供了 AtomicReference&#xff0c;用于對象引用做原子性的管理&#xff0c;比如 get、set、CAS。 一般情況下 AtomicInteger、AtomicLong 的性能…

mac新環境

1、maven 設置阿里云鏡像 打開Maven的settings.xml文件。找到<mirrors>標簽&#xff0c;如果沒有&#xff0c;可以手動添加。在<mirrors>標簽內部添加以下內容&#xff1a; <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorO…

【C++】類的轉換函數

使用場景 C中當你創建了一個類&#xff0c;你想把這個類對象轉換成基本類型的函數。類對象->基本類型對象 原理 如下實例&#xff0c;設計一個分數類&#xff0c;實現分數轉換成double 浮點數的轉換函數。并在mian函數隱式調用。 #include<iostream> class Fractio…

6. 使用 Spring Boot進行開發(Developing with Spring Boot)

6. 使用 Spring Boot進行開發&#xff08;Developing with Spring Boot&#xff09; 本節詳細介紹了如何使用Spring Boot。它涵蓋考慮構建系統、自動配置以及如何運行應用程序等主題。我們還介紹一些 Spring Boot 最新做法。雖然 Spring Boot 沒有什么特別之處&#xff08;它只…

Java 接口和抽象類有何區別?

Java接口&#xff08;Interface&#xff09;和抽象類&#xff08;Abstract Class&#xff09;都是面向對象編程中用于實現多態和代碼復用的重要概念&#xff0c;但它們之間有幾個關鍵的區別&#xff1a; 1. **實例化**&#xff1a; - **接口**&#xff1a;不能被實例化。它…

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之JSON Schema

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之JSON Schema 一、生成Schema二、加密字段三、JSON Schema類型 從3.6版本開始&#xff0c;MongoDB支持根據提供的 JSON Schema驗證documents的集合。在創建集合時&#xff0c;可以定義schema本身以及驗證操作和級別&…

Python爬蟲Cookies 池的搭建

Cookies 池的搭建 很多時候&#xff0c;在爬取沒有登錄的情況下&#xff0c;我們也可以訪問一部分頁面或請求一些接口&#xff0c;因為畢竟網站本身需要做 SEO&#xff0c;不會對所有頁面都設置登錄限制。 但是&#xff0c;不登錄直接爬取會有一些弊端&#xff0c;弊端主要有…

南京師范大學計電院數據結構課設——排序算法

1 排序算法 1.1 題目要求 編程實現希爾、快速、堆排序、歸并排序算法。要求首先隨機產生10000個數據存入磁盤文件&#xff0c;然后讀入數據文件&#xff0c;分別采用不同的排序方法進行排序并將結果存入文件中。 1.2 算法思想描述 1.2.1 隨機數生成 當需要生成一系列隨機數…

windows 11 前后端項目部署

目錄 1.準備環境&#xff1a; 2.安裝jdk 測試&#xff1a;winr 輸入cmd 3.安裝tomcat 4.安裝mysql 遠程導入數據&#xff1a; 外部后臺訪問&#xff1a;192.168.232.1:8080/crm/sys/loginAction.action?usernamezs&password123 5.安裝nginx 前后端部署&#xff1…

qsort函數的模擬實現(冒泡排序模擬)

冒泡排序&#xff1a; 從第一個元素開始&#xff0c;依次比較相鄰的兩個元素&#xff0c;如果順序不對就交換它們。 經過一輪遍歷后&#xff0c;最大&#xff08;或最小&#xff09;的元素會排在最后。 重復進行上述步驟&#xff0c;直到沒有任何元素需要交換&#xff0c;即…

Linux了解

簡介 Linux是一種自由和開放源代碼的類UNIX操作系統&#xff0c;由芬蘭的Linus Torvalds于1991年首次發布。Linux最初是作為支持英特爾x86架構的個人電腦的一個自由操作系統&#xff0c;現在已經被移植到更多的計算機硬件平臺&#xff0c;如手機、平板電腦、路由器、視頻游戲控…

爬蟲入門到精通_實戰篇8(分析Ajax請求并抓取今日頭條美食美圖)_界面上抓取Ajax方式

1 目標 目標&#xff1a; 抓取今日頭條美食美圖&#xff0c;如下&#xff1a; 一些網頁直接請求得到的HTML代碼并沒有在網頁中看到的內容&#xff0c;因為一些信息是通過Ajax加載&#xff0c;并通過js渲染生成的&#xff0c;這時就需要通過分析網頁的請求來獲取想要爬取的內容…

解決conda環境下import TensorFlow失敗的問題

問題描述 安裝了anaconda的電腦&#xff0c;新建了一個名叫deeplearning的環境&#xff0c;在該環境下已經成功安裝了tensorflow。 于是在終端打開python并執行代碼 import tensorflow as tf print(1)除了提示 2024-02-27 21:50:00.801427: I external/local_tsl/tsl/cuda/c…

CSS 盒子模型(box model)

概念 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"這一術語是用來設計和布局時使用CSS盒模型本質上是一個盒子&#xff0c;封裝周圍的HTML元素&#xff0c;它包括&#xff1a;外邊距(margin)&#xff0c;邊框(border)&#xff0c;內邊距(pad…

關于 HTTP 協議,你了解多少

HTTP協議 FastAPI 是建立在 HTTP 協議之上&#xff0c;所以為了更好的掌握 FastAPI。我們需要先簡單的了解一下 HTTP協議 簡介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;遵循經典的客戶端-服務器模型&#xff0c;客戶端打開連接以發出請求&#xff0c;然后等…

【Go語言】Go語言中的流程控制

Go語言中的流程控制 流程控制主要用于設定計算執行的順序&#xff0c;簡歷程序的邏輯結果&#xff0c;Go語言的流程控制語句與其他語言類似&#xff0c;支持如下幾種流程控制語句&#xff1a; 條件語句&#xff1a;用于條件判斷&#xff0c;對應的關鍵字有if、else和else if&a…