物件導向 何為模組

2022-08-29 19:03:11 字數 2997 閱讀 1271

何為模組?乙個模組就是包含了python定義和宣告的檔案,檔名就是模組加上.py的字尾.

但其實import載入的模組分為四個通用類別:

1.使用python編碼的**(.py檔案)

2.一杯編譯為共享庫或dlld的c或c++擴充套件

3.包好一組模組的包

4.使用c編寫並鏈結到python直譯器的內建模組

為何要用模組?

如果要退出python直譯器然後重新進入,那麼你之前定義的函式或者變數都將會丟失,因此我們通常將程式寫到檔案中以便保留下來,需要時就通過python test.py方式去執行,此時test.py被稱為指令碼script.  

隨著程式的發展,功能越來越多,為了方便管理,我們通常將程式分為乙個個的檔案,這樣做的程式結構更加清晰,方便管理.這事我們不僅僅可以把這些檔案當做指令碼去執行,還可以把他們當做模組來匯入到其他的模組中,實現功能的重複利用.

模組的種類:

1.re模組

從京東的註冊頁面,開啟頁面我們就看到這些輸入個人資訊的提示.假設我們隨意的在手機手機號碼欄中輸入12個1,它會提示我們格式錯誤.

這些功能是如何實現的呢?

假如現在你在python寫一段**,類似

number = input('請輸入你的**號碼:')
你是怎麼判斷這個number是合法的呢?

根據手機號碼一共是11位,並且是以13,14,15,18開頭的數字的這些特點,我們用python寫了一段**

while true :

num = input("請輸入你的**號碼:")

if len(num) ==11\

and num.isdigit()\

and num.stratswith("13")\

and num.stratswith("14")\

and num.stratswith("15")\

and num.stratswith("18"):

print("是合法手機號碼")

else:

print("不是合法的手機號碼")

這個是目前學到的寫法,其實還有一種法子

import  re

num = input("請輸入你的手機號碼")

if re.match('(^13|14|15|18)[0-9]$',num):

print("是合法的手機號碼")

else:

print("不是合法的手機號碼")

對比以上兩種寫法,喜歡哪一種?如果說是第一種?為啥?因為第一種不需要學

但是如果現在有乙個檔案,讓你從檔案中匹配所有的手機號碼,你用python寫乙個試一下?

如果get今天這個技能,讓你分分鐘搞定,走向人生巔峰.

幾天我們要學習python裡面的re模組和正規表示式,學會了這個就可以幫我們解決剛剛的問題,正則不僅僅在python領域,在整個程式設計屆都有舉足輕重的地位.

ps:不管你學不學python開發,只要是乙個程式設計師就應該了解正規表示式的基本使用,如果將來要是在爬蟲領域發展的話,就應該更好好的學習這個知識.

但是你要知道,re模組本質上和正規表示式沒有一毛錢關係,re模組和正規表示式的關係就類似於time模組和時間的關係

你沒有學python之前,也不知道有time模組,但是你認識了時間,12:30就表示已經中午的12點半,這個時間剛剛可以下課了~

時間有自己的格式,年月日時分秒.12個月,365天...這個已經成為了一種規則,所以你也就牢記於心,time模組只不過是python提供給我們乙個方便我們操作時間的工具罷了.

正規表示式本身也和python沒有什麼關係,就是匹配字元字串內容的一種規則.

官方定義:正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元,以及特定字元組合組成乙個"規則字串",這規則字串用來表達對字串的一種過濾邏輯.

正規表示式

首先一談到正則,就和字串相關了,在提供的工具裡面,每輸入乙個字都是字串,其次如果在乙個位置的乙個值,不會出現什麼變化 ,那麼是不需要規則的.

如果你要用1匹配1,或者用2匹配2,就直接匹配就好了,這個連python都可以輕鬆做到.那麼在這之後我們更多的考慮是在同乙個位置上,可以出現的字元範圍.

字元:元字元

匹配內容

.匹配除換行符以外的任意字元

\w匹配字母或數字或下劃線

\s匹配任意空白符

\d匹配數字

\n匹配換行符

\t匹配製表符(tab)

\b匹配乙個單詞的結尾

^匹配乙個字串的開始

$匹配乙個字串的結尾

\w匹配非字母或下劃線

\d匹配非數字

\s匹配非任意空白字元

a|ba或者b

()匹配括號裡面的表示式,也表示乙個組

[...]

匹配字元組中的字元

[^...]

匹配除了字元組中的所有字元

量詞:量詞

用法說明

*重複多0或者多次

+重複1或者多次

?重複0或者1次

重複n次

重複n或者更多次

重複n到m次

例子:.^$

正則帶匹配字元

匹配結果

說明大.

大哥大姐大人

大哥大姐大人

匹配所有帶'大'的字元

^大.大哥大姐大人

大哥匹配了開頭"大"

大.$大哥大姐大人

大人匹配了結尾的'大'

*+?{}

正則帶匹配字元

匹配結果

說明張.?

張大和張柳柳和張二棒子

張大張柳

張二?表示重複零次或者一次,即只匹配張後面乙個

張大和張柳柳和張二棒子

張大和張柳柳和張二棒子

張大和張柳柳和張二棒子

---恢復內容結束---

---恢復內容結束---

何為物件導向?

概述 所謂物件,是乙個名詞,任何乙個事物都可以稱為物件,其有對應的屬性 事物的特性 和行為 事物能幹什麼 物件導向思想,就是面向事物的程式設計思想。1,面向過程 談及物件導向,不得不談的就是面向過程。物件導向是針對名詞而言,面向過程則是針對行為動作的處理。面向過程是一種以過程為中心的程式設計思想。所...

物件導向何為多型?

前言 物件導向程式設計過程中少不了 1 封裝 2 繼承 3 多型 三個特性,其中多型又是怎麼理解的呢?擯棄教科書式回答,多型語義是多種形態的縮寫,在物件導向程式設計的思想中,萬物皆物件 那麼我們知道,物件的行為和屬性由模板類定義,而通過模板類 class or inte ce 我們可以控制物件在ru...

模組,物件導向程式設計

直接引入模組 import model if name main print model.page 從模組中引入具體內容 from models import page if name main print page 引入模組中的全部內容 後續呼叫時 from models import if na...