函式模組
一、函式模組的作用(為什麼要有函式模組)
1、函式模組可以減少**量
2、函式模組方便閱讀
3、函式模組維護性強
二、函式模組的本質以及呼叫方法
1、函式模組的本質就是乙個.py結尾的檔案,該檔案內寫入大量函式
2、必須用import來引用函式模組,在呼叫函式模組時必須以"模組名.函式名"來呼叫函式模組中的函式。
3、有的時候我們只需要用到模組中的某個函式,也可以用「from 模組名 improt 函式1,函式2」的方式來引用該模組,但只是一次引用,不建議使用。
三、函式模組的分類
1、內建函式模組:系統自帶的函式模組,我們只管呼叫它就可以了,在python環境裡是看不到內建模組的,是在python直譯器裡面寫好了的。
2、第三方函式模組:系統中自帶了些別人寫好的模組,稱為第三方模組,該模組儲存的路徑在python軟體安裝路徑的lib下面(儲存在系統環境裡)。
3、自定義模組:自己定義的模組
4、import匯入模組時的載入順序:先從python直譯器中查詢,再從系統環境(lib)中查詢,最後在自定義的路徑下查詢。
四、time內建模組詳解
1、time內建模組
1.1時間的表達形式
在python中時間的表達形式有三種,分別為時間戳,結構化時間(struct_time),和格式化的時間字串。
時間戳:從2023年一月一號的零點零分零秒開始按秒計算的偏移量,其返回的值是個float型別。
字串字串:如'1998-10-10'(分隔符格式可以自己自由定義)
1.2總結:時間戳是計算機能夠識別的時間,格式化的時間字串是人能夠識別的時間,結構化時間是用來操作時間的。
2、三種時間表達形式上的相互轉換(如圖)
1.1 字串時間和時間戳之間是不能相互轉換的。
1.2 time.localtime結構化時間的物件是北京標準時間,而time.gmtime結構化時間的物件是國際標準時間
五、random模組詳解
1、python中的random模組用於隨機產生乙個任意數字
2、random.random
random.random()用於隨機生成乙個0到1.0的浮點數。
3、random.randint
random.randint(x,y)用於隨機生成乙個整數,大於等於x小於等於y的整數,並且x必須大於y.(顧頭又顧尾)
4、random.randrange
random.randrange(x,y)用於隨機生成乙個整數,大於等於x小於y的整數,並且x必須大於y.(顧頭不顧尾)
5、random.choice
random.choice(序列x)是從序列中隨機獲取乙個元素,返回的結果是個整數型。序列x表示的是個有序序列。
random.choices(序列y)是從序列中隨機獲取乙個元素,返回的結果是個list型。序列y表示的是個有序序列。
6、random.sample
random.sample(sequence, k)從指定序列中隨機獲取k個元素,返回的結果是列表。sample函式不會修改原有序列sequence,。
7、random.uniform
random.uniform(x,y)用於隨機生成乙個大於x小於y的浮點數,且x可以大於y也可小於y。
8、random.shuffle
random.shuffle(x)用於將乙個列表的元素打亂,改變了列表x的元素位置。
六、hashlib
1、hashlib的作用:hashlib是個專門提供hash演算法的庫(摘要演算法),現在裡面包括md5, sha1, sha224, sha256, sha384, sha512。
2、摘要演算法:摘要演算法又稱雜湊演算法,雜湊演算法。他通過乙個函式吧任意長度的資料轉化成(對應)乙個固定長度的資料串(通常用16進製制的字串表示)
3、hashlib的執行方式
hashlib.md5().update(b'x') 其中x為加密物件,加密完成。(如果加密物件很大可以呼叫多次update,加密後的結果是一樣的)
hashlib.md5().hexdigest()
檢視加密後的結果(32位的16進製制字串)
4、md5的加鹽操作
4.1 為何加鹽:由於加密物件和計算出的md5值是一一對應的關係,通過撞庫的方式就可以破解使用者密碼,所以要對加密物件進行加鹽操 作。
4.2 加鹽方法:對原始字串前加入一串資料,然後進行md5加密
其格式為:hashlib.md5('salt',encod(utf-8))
5、如果兩個使用者的加密物件相同,加鹽一致,得到的md5值也是一樣的,解決辦法是通通過把登入名作為salt的一部分來計算md5,從而實 現相同口令的使用者也儲存不同的md5。(前提是使用者名稱不一致)
注:sha1的結果是160 bit位元組,通常用乙個40位的16進製制字串表示。比sha1更安全的演算法是sha256和sha512,不過越安全的演算法越 慢,而且摘要長度更長.摘要演算法在很多地方都有廣泛的應用。要注意摘要演算法不是加密演算法,不能用於加密(因為無法通過摘要反推明文),只 能用於防篡改,但是它的單向計算特性決定了可以在不儲存明文口令的情況下驗證使用者口令。
七、os模組詳解
1、os 模組提供了乙個統一的
作業系統
介面函式, 這些介面函式通常是平台指定的,os 模組能在不同作業系統平台如 nt 或 posix中的特定函式間自動切換,從而能實現跨平台操作。(os模組是python標準庫中的乙個用於訪問作業系統功能的模組)
2、os模組的詳細引數
1.os.getcwd() 獲取當前工作目錄,即當前python指令碼工作的目錄路徑
2.os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cd os.curdir 返回當前目錄: ('.')
3.os.pardir 獲取當前目錄的父目錄字串名:('..')
4.os.makedirs('dirname1/dirname2') 可生成多層遞迴目錄
5.os.removedirs('dirname1') 若目錄為空,則刪除,並遞迴到上一級目錄,如若也為空,則刪除,依此類推
6.os.mkdir('dirname') 生成單級目錄;相當於shell中mkdir dirname
7.os.rmdir('dirname') 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
8.os.listdir('dirname') 列出指定目錄下的所有檔案和子目錄,包括隱藏檔案,並以列表方式列印出來,不區分檔案和資料夾。
9.os.remove(x) 刪除乙個檔案其中x指的是檔案的絕對路徑
10.os.name 判斷當前使用的是什麼平台。win->'nt'; linux->'posix'
11.os.system("bash command") 執行shell命令,直接顯示
12.os.environ 獲取系統環境變數
13.os.path.abspath(path) 返回path規範化的絕對路徑
14.os.path.split(path) 將path分割成目錄和檔名二元組返回
15.os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第乙個元素
16.os.rename("oldname","newname") 重新命名檔案/目錄
17.os.path.isabs(path) 如果path是絕對路徑,返回true os.path.isfile(path) 如果path是乙個存在的檔案,返回true。否則返回false
18.os.path.isdir(path) 如果path是乙個存在的目錄,則返回true,否則返回false
19.os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第乙個絕對路徑之前的引數將被忽略
20.os.path.getatime(path) 返回最近一次進入path的時間.a即access,跟linux裡邊的atime是一樣的
21.os.path.getmtime(path) 返回這個path最後一次修改的時間。
22.os.path.getctime(path) 返回path所指向的檔案或者目錄建立時間
23.os.path.getsize(path) 返回path的大小
python函式 模組
一 函式 函式是組織好的,可以重複利用,用來實現一定功能的 段。1 函式的組成部分 1 函式 塊以 def 關鍵字開始,後接函式名稱和括號 然後是冒號 2 任何傳入的引數和自變數必須放在 中 3 函式第一行語句可以寫注釋表明函式的功能 4 段,描述了函式實現的功能,需要縮排 5 return 表示式...
Python函式 模組
模組 定義函式使用def 函式體寫在縮排塊中,函式的返回值用return語句返回,函式執行完畢也沒有return語句時,自動return none 如果想定義乙個什麼事也不做的空函式,可以用pass語句,pass可以用來作為佔位符,如果沒想好怎麼寫,可以先寫乙個pass函式,讓 執行起來 函式 含義...
Python 函式 模組
1.函式的定義 2.函式的呼叫 格式 函式名 函式只能先定義再使用,即函式的呼叫不能出現在函式定義部分的上方。3.除錯工具3.函式注釋 4.函式引數的使用 形參是乙個容器實參是放在容器內的東西。5.函式的返回值 使用return關鍵字可以返回結果。用return返回後,後續的 都不會再執行。模組1....