python模塊筆記,python模塊和包知識講解_第1頁
python模塊筆記,python模塊和包知識講解_第2頁
python模塊筆記,python模塊和包知識講解_第3頁
python模塊筆記,python模塊和包知識講解_第4頁
python模塊筆記,python模塊和包知識講解_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Python中的模塊在Python中有一個概念叫做模塊(module)。說的通俗點:模塊就好比是工具包,要想使用這個工具包中的工具(就好比函數(shù)),就需要導(dǎo)入這個模塊比如我們經(jīng)常使用工具 random,就是一個模塊。使用 import random 導(dǎo)入工具之后,就可以使用 random 的函數(shù)。導(dǎo)入模塊 導(dǎo)入模塊有五種方式import 模塊名from 模塊名 import 功能名from 模塊名 import *import 模塊名 as 別名from 模塊名 import 功能名 as 別名下面來挨個的看一下。import在Python中用關(guān)鍵字import來引入某個模塊,比如要引入系統(tǒng)模塊

2、 math,就可以在文件最開始的地方用import math來引入。語法:import 模塊1,模塊2,. # 導(dǎo)入方式模塊名.函數(shù)名() # 使用模塊里的函數(shù)想一想:為什么必須加上模塊名調(diào)用呢?答:因為可能存在這樣一種情況:在多個模塊中含有相同名稱的函數(shù),此時如果只是通過函數(shù)名來調(diào)用,解釋器無法知道到底要調(diào)用哪個函數(shù)。所以如果像上述這樣引入模塊的時候,調(diào)用函數(shù)必須加上模塊名示例:import math#這樣才能正確輸出結(jié)果print math.sqrt(2)#這樣會報錯print(sqrt(2)fromimport有時候我們只需要用到模塊中的某個函數(shù),只需要引入該函數(shù)即可,此時可以用下面方法

3、實現(xiàn):from 模塊名 import 函數(shù)名1,函數(shù)名2.不僅可以引入函數(shù),還可以引入一些全局變量、類等注意:通過這種方式引入的時候,調(diào)用函數(shù)時只能給出函數(shù)名,不能給出模塊名,但是當(dāng)兩個模塊中含有相同名稱函數(shù)的時候,后面一次引入會覆蓋前一次引入。也就是說假如模塊A中有函數(shù)function( ),在模塊B中也有函數(shù)function( ),如果引入A中的function在先、B中的function在后,那么當(dāng)調(diào)用function函數(shù)的時候,是去執(zhí)行模塊B中的function函數(shù)。例如,要導(dǎo)入模塊fib的fibonacci函數(shù),使用如下語句:from fib import fibonacci注意不會

4、把整個fib模塊導(dǎo)入到當(dāng)前的命名空間中,它只會將fib里的fibonacci單個函數(shù)引入from import *把一個模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間也是可行的,只需使用如下聲明:from modname import *注意這提供了一個簡單的方法來導(dǎo)入一個模塊中的所有項目。然而這種聲明不該被過多地使用。 as 別名In 1: import time as tt # 導(dǎo)入模塊時設(shè)置別名為 ttIn 2: time.sleep(1)-NameError Traceback (most recent call last) in ()- 1 time.sleep(1)NameError: n

5、ame time is not definedIn 3: In 3: tt.sleep(1) # 使用別名才能調(diào)用方法In 4: In 4: from time import sleep as sp # 導(dǎo)入方法時設(shè)置別名In 5: sleep(1)-NameError Traceback (most recent call last) in ()- 1 sleep(1)NameError: name sleep is not definedIn 6: In 6: sp(1) # 使用別名才能調(diào)用方法In 7:常見系統(tǒng)模塊為了方便程序員開發(fā)代碼,Python提供了很多內(nèi)置的模塊給程序員用來提高

6、編碼效率。常見的內(nèi)置模塊有: HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%

7、94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#os os模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E

8、9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l

9、math#sys sys模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%

10、94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#math math模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%

11、83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.htm

12、l l math#random random模塊 HYPERLINK datetime模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96

13、%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#time time模塊 HYPERLINK calendar模塊 HYPERLINK hashlib模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%

14、8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-

15、%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#hmac hmac模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%

16、85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#copy 模塊 HYPERLINK file:/C:/Users/Administrator/Desktop/%E7%94%B5%E

17、5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day1

18、0-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/chapter02.html l math#uuid uuid模塊OS模塊OS全稱OperationSystem,即操作系統(tǒng)模塊,這個模塊可以用來操作系統(tǒng)的功能,并且實現(xiàn)跨平臺操作import osos.getcwd() # 獲取當(dāng)前的工作目錄,即當(dāng)前python腳本工作的目錄os.chdir(test) # 改變當(dāng)前腳本工作目錄,相當(dāng)于shell下的cd命令os.rename(畢業(yè)論文.txt,畢業(yè)論文-最終版.txt) # 文件重命名os.remove(畢業(yè)論文.txt

19、) # 刪除文件os.rmdir(demo) # 刪除空文件夾os.removedirs(demo) # 刪除空文件夾os.mkdir(demo) # 創(chuàng)建一個文件夾os.chdir(C:) # 切換工作目錄os.listdir(C:) # 列出指定目錄里的所有文件和文件夾 # nt-widonws posix-Linux/Unix或者MacOSos.environ # 獲取到環(huán)境配置os.environ.get(PATH) # 獲取指定的環(huán)境配置os.path.abspath(path) # 獲取Path規(guī)范會的絕對路徑os.path.exists(path) # 如果Path存在,則返回T

20、rueos.path.isdir(path) # 如果path是一個存在的目錄,返回True。否則返回Falseos.path.isfile(path) # 如果path是一個存在的文件,返回True。否則返回Falseos.path.splitext(path) # 用來將指定路徑進行分隔,可以獲取到文件的后綴名sys模塊該模塊提供對解釋器使用或維護的一些變量的訪問,以及與解釋器強烈交互的函數(shù)import syssys.path # 模塊的查找路徑sys.argv # 傳遞給Python腳本的命令行參數(shù)列表sys.exit(code) # 讓程序以指定的退出碼結(jié)束sys.stdin # 標準

21、輸入??梢酝ㄟ^它來獲取用戶的輸入sys.stdout # 標準輸出??梢酝ㄟ^修改它來百變默認輸出sys.stderr # 錯誤輸出??梢酝ㄟ^修改它來改變錯誤刪除math模塊math模塊保存了數(shù)學(xué)計算相關(guān)的方法,可以很方便的實現(xiàn)數(shù)學(xué)運算。import mathprint(math.fabs(-100) # 取絕對值print(math.ceil(34.01) #向上取整print(math.factorial(5) # 計算階乘print(math.floor(34.98) # 向下取整print(math.pi) # 的值,約等于 3.141592653589793print(math.pow

22、(2, 10) # 2的10次方print(math.sin(math.pi / 6) # 正弦值print(math.cos(math.pi / 3) # 余弦值print(math.tan(math.pi / 2) # 正切值random模塊random 模塊主要用于生成隨機數(shù)或者從一個列表里隨機獲取數(shù)據(jù)print(random.random() # 生成 0,1)的隨機浮點數(shù)print(random.uniform(20, 30) # 生成20,30的隨機浮點數(shù)print(random.randint(10, 30) # 生成10,30的隨機整數(shù)print(random.randrang

23、e(20, 30) # 生成20,30)的隨機整數(shù)print(random.choice(abcdefg) # 從列表里隨機取出一個元素print(random.sample(abcdefghij, 3) # 從列表里隨機取出指定個數(shù)的元素datetime模塊datetime模塊主要用來顯示日期時間,這里主要涉及date類,用來顯示日期;time類,用來顯示時間;dateteime類,用來顯示日期時間;timedelta類用來計算時間。import datetimeprint(datetime.date(2020, 1, 1) # 創(chuàng)建一個日期print(datetime.time(18, 2

24、3, 45) # 創(chuàng)建一個時間print(datetime.datetime.now() # 獲取當(dāng)前的日期時間print(datetime.datetime.now() + datetime.timedelta(3) # 計算三天以后的日期時間time模塊除了使用datetime模塊里的time類以外,Python還單獨提供了另一個time模塊,用來操作時間。time模塊不僅可以用來顯示時間,還可以控制程序,讓程序暫停(使用sleep函數(shù))print(time.time() # 獲取從1970-01-01 00:00:00 UTC 到現(xiàn)在時間的秒數(shù)print(time.strftime(%Y

25、-%m-%d %H:%M:%S) # 按照指定格式輸出時間print(time.asctime() #Mon Apr 15 20:03:23 2019print(time.ctime() # Mon Apr 15 20:03:23 2019print(hello)print(time.sleep(10) # 讓線程暫停10秒鐘print(world)calendar模塊calendar模塊用來顯示一個日歷,使用的不多,了解即可。calendar.setfirstweekday(calendar.SUNDAY) # 設(shè)置每周起始日期碼。周一到周日分別對應(yīng) 0 6calendar.firstwee

26、kday()# 返回當(dāng)前每周起始日期的設(shè)置。默認情況下,首次載入calendar模塊時返回0,即星期一。c = calendar.calendar(2019) # 生成2019年的日歷,并且以周日為其實日期碼print(c) #打印2019年日歷print(calendar.isleap(2000) # True.閏年返回True,否則返回Falsecount = calendar.leapdays(1996,2010) # 獲取1996年到2010年一共有多少個閏年print(calendar.month(2019, 3) # 打印2019年3月的日歷hashlib模塊hashlib是一個提

27、供字符加密功能的模塊,包含MD5和SHA的加密算法,具體支持md5,sha1, sha224, sha256, sha384, sha512等算法。 該模塊在用戶登錄認證方面應(yīng)用廣泛,對文本加密也很常見。import hashlib# 待加密信息str = 這是一個測試# 創(chuàng)建md5對象hl = hashlib.md5(hello.encode(encoding=utf8)print(MD5加密后為 : + hl.hexdigest()h1 = hashlib.sha1(123456.encode()print(h1.hexdigest()h2 = hashlib.sha224(123456.

28、encode()print(h2.hexdigest()h3 = hashlib.sha256(123456.encode()print(h3.hexdigest()h4 = hashlib.sha384(123456.encode()print(h4.hexdigest()hmac模塊HMAC算法也是一種一種單項加密算法,并且它是基于上面各種哈希算法/散列算法的,只是它可以在運算過程中使用一個密鑰來增增強安全性。hmac模塊實現(xiàn)了HAMC算法,提供了相應(yīng)的函數(shù)和方法,且與hashlib提供的api基本一致。h = hmac.new(h.encode(),你好.encode()result =

29、 h.hexdigest()print(result) # 獲取加密后的結(jié)果模塊模塊里有和deep兩個函數(shù),分別用來對數(shù)據(jù)進行深復(fù)制和淺復(fù)制。import nums = 1, 5, 3, 8, 100, 200, 300, 400, 6, 7nums1 = .(nums) # 對nums列表進行淺復(fù)制nums2 = .deep(nums) # 對nums列表進行深復(fù)制uuid模塊UUID是128位的全局唯一標識符,通常由32字節(jié)的字母串表示,它可以保證時間和空間的唯一性,也稱為GUID。通過MAC地址、時間戳、命名空間、隨機數(shù)、偽隨機數(shù)來保證生產(chǎn)的ID的唯一性。隨機生成字符串,可以當(dāng)成toke

30、n使用,當(dāng)成用戶賬號使用,當(dāng)成訂單號使用。方法作用uuid.uuid1()基于MAC地址,時間戳,隨機數(shù)來生成唯一的uuid,可以保證全球范圍內(nèi)的唯一性。uuid.uuid2()算法與uuid1相同,不同的是把時間戳的前4位置換為POSIX的UID。不過需要注意的是python中沒有基于DCE的算法,所以python的uuid模塊中沒有uuid2這個方法。uuid.uuid3(namespace,name)通過計算一個命名空間和名字的md5散列值來給出一個uuid,所以可以保證命名空間中的不同名字具有不同的uuid,但是相同的名字就是相同的uuid了。namespace并不是一個自己手動指定的

31、字符串或其他量,而是在uuid模塊中本身給出的一些值。比如uuid.NAMESPACE_DNS,uuid.NAMESPACE_OID,uuid.NAMESPACE_OID這些值。這些值本身也是UUID對象,根據(jù)一定的規(guī)則計算得出。uuid.uuid4()通過偽隨機數(shù)得到uuid,是有一定概率重復(fù)的uuid.uuid5(namespace,name)和uuid3基本相同,只不過采用的散列算法是sha1一般而言,在對uuid的需求不是很復(fù)雜的時候,uuid1或者uuid4方法就已經(jīng)夠用了import uuidprint(uuid.uuid1() # 根據(jù)時間戳和機器碼生成uuid,可以保證全球唯一

32、print(uuid.uuid4() # 隨機生成uuid,可能會有重復(fù)# 使用命名空間和字符串生成uuid.# 注意一下兩點:# 1. 命名空間不是隨意輸入的字符串,它也是一個uuid類型的數(shù)據(jù)# 2. 相同的命名空間和想到的字符串,生成的uuid是一樣的print(uuid.uuid3(uuid.NAMESPACE_DNS, hello)print(uuid.uuid5(uuid.NAMESPACE_OID, hello)pip命令的使用在安裝Python時,同時還會安裝pip軟件,它是Python的包管理工具,可以用來查找、下載、安裝和卸載Python的第三方資源包。配置pip可以直接在

33、終端中輸入pip命令,如果出錯,可能會有兩個原因:pip安裝成功以后沒有正確配置安裝Python時,沒有自動安裝pip(很少見)配置pip和運行Python命令一樣,如果想要運行 pip 命令同樣也需要將pip命令的安裝目錄添加到環(huán)境變量中安裝pip如果在Python安裝對應(yīng)的目錄中,沒有發(fā)現(xiàn)pip.exe文件,可能是因為在安裝Python時未自動安裝pip,建議將Python卸載,然后在重新安裝Python時選擇Install Now使用默認方式安裝Python.管理第三方包對第三方包的管理主要包含查找、安裝和卸載三個部分的操作。安裝使用pip install 命令可以安裝指定的第三方資源包

34、。pip install ipython # 安裝ipython包使用 install 命令下載第三方資源包時,默認是從 pythonhosted下載,由于各種原因,在國內(nèi)下載速度相對來說比較慢,在某些時候甚至?xí)霈F(xiàn)連接超時的情況,我們可以使用國內(nèi)鏡像來提高下載速度。臨時修改如果只是想臨時修改某個第三方資源包的下載地址,在第三方包名后面添加 -i 參數(shù),再指定下載路徑即可,格式為pip install -i pip install ipython -i /simple永久修改除了臨時修改pip的下載源以外,我們還能永久改變pip的默認下載路徑。在當(dāng)前用戶目錄下創(chuàng)建一個pip的文件夾,然后再在文

35、件夾里創(chuàng)建pip.ini文件并輸入一下內(nèi)容:globalindex-url=/simpleinstalltrusted-host=常見國內(nèi)鏡像阿里云 HYPERLINK /pypi/simple/ t C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5

36、%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/_blank /pypi/simple/中國科技大學(xué) HYPERLINK /simple/ t C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8

37、B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%

38、A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/_blank /simple/豆瓣(douban) HYPERLINK /simple/ t C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E

39、5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/_blank /simple/清華大學(xué) HYPERLINK /simple/ t C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9

40、C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%

41、E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/_blank /simple/中國科學(xué)技術(shù)大學(xué) HYPERLINK /simple/ t C:/Users/Administrator/Desktop/%E7%94%B5%E5%8E%8B%E6%9C%BA/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/2020%E5%8D%83%E9%94%8BPython%E5%85%A5%E9%97%A8%E8%A7%86%E9%A2%91%E5%85%A8%E5%A5%97%E5%85%A8%E5%BC%80%

42、E6%BA%90%EF%BC%88%E6%9C%80%E6%96%B0%E7%89%88%EF%BC%89%20%E7%AC%94%E8%AE%B0+%E4%BB%A3%E7%A0%81+%E8%AF%BE%E4%BB%B6+%E8%B5%84%E6%96%99/Day10-%E6%A8%A1%E5%9D%97%E5%92%8C%E5%8C%85/03-%E7%AC%94%E8%AE%B0/_blank /simple/卸載使用pip install 命令可以用來卸載指定的第三方資源包。pip uninstall ipython # 卸載ipython包查找使用pip list或者pip fr

43、eeze命令可以來管理第三方資源包。這兩個命令的功能一致,都是用來顯示當(dāng)前環(huán)境里已經(jīng)安裝的包,區(qū)別在于pip list會列出所有的包,包括一些無法uninstall的包;而pip freeze只會列出我們安裝的第三方包。總結(jié)開發(fā)中,我們通常會使用很多第三方的資源包,我們在將程序部署到服務(wù)器的時候,不僅要把代碼上傳到服務(wù)器,同時還需要把代碼里用到的第三方資源包告訴服務(wù)器。那么這里就有兩個問題:當(dāng)我們電腦上運行很多個項目,每個項目使用的第三方資源包又不一致時,怎樣將代碼和它使用到的第三方資源包放在一起呢?答:虛擬環(huán)境怎樣將自己代碼使用到的第三方資源包告訴給服務(wù)器?使用 pip freeze req

44、uires.txt 命令,將代碼里使用到的第三方資源包以及版本號寫入到 requirements.txt 文件,在部署時,同時將 requirements.txt 文件上傳到服務(wù)器。服務(wù)器在拿到代碼以后,首先運行 pip install -r requirements.txt 命令,將文件里列出的所有第三方框架先安裝到服務(wù)器,然后才能運行代碼。使用pycharm管理第三方包除了使用pip 命令管理第三方資源包以外,我們還能使用pycharm來對第三方包進行管理。自定義模塊除了使用系統(tǒng)提供的內(nèi)置模塊以外,我們還能自己寫一個模塊供自己的程序使用。一個py文件就是一個模塊,所以,自定義模塊很簡單,基

45、本上相當(dāng)于創(chuàng)建一個py文件。但是,需要注意的是,如果一個py文件要作為一個模塊被別的代碼使用,這個py文件的名字一定要遵守標識符的命名規(guī)則。模塊的查找路徑創(chuàng)建一個模塊非常簡單,安裝標識符的命名規(guī)則創(chuàng)建一個py文件就是一個模塊。但是問題是,我們需要把創(chuàng)建好的這個py文件放在哪個位置,在代碼中使用import語句才能找到這個模塊呢?Python內(nèi)置sys模塊的path屬性,列出了程序運行時查找模塊的目錄,只需要把我們創(chuàng)建好的模塊放到這些任意的一個目錄里即可。import sysprint(sys.path) C:UserschrisDesktopTest, C:UserschrisAppDataL

46、ocalProgramsPythonPython37python37.zip, C:UserschrisAppDataLocalProgramsPythonPython37DLLs, C:UserschrisAppDataLocalProgramsPythonPython37lib, C:UserschrisAppDataLocalProgramsPythonPython37, C:UserschrisAppDataRoamingPythonPython37site-packages, C:UserschrisAppDataLocalProgramsPythonPython37libsite-

47、packages_all_的使用使用from import *導(dǎo)入一個模塊里所有的內(nèi)容時,本質(zhì)上是去查找這個模塊的_all_屬性,將_all_屬性里聲明的所有內(nèi)容導(dǎo)入。如果這個模塊里沒有設(shè)置_all_屬性,此時才會導(dǎo)入這個模塊里的所有內(nèi)容。模塊里的私有成員模塊里以一個下劃線_開始的變量和函數(shù),是模塊里的私有成員,當(dāng)模塊被導(dǎo)入時,以_開頭的變量默認不會被導(dǎo)入。但是它不具有強制性,如果一個代碼強行使用以_開頭的變量,有時也可以。但是強烈不建議這樣使用,因為有可能會出問題??偨Y(jié)test1.py:模塊里沒有_all_屬性a = hellodef fn(): print(我是test1模塊里的fn函數(shù))

48、test2.py:模塊里有_all_屬性x = 你好y = gooddef foo(): print(我是test2模塊里的foo函數(shù))_all_ = (x,foo)test3.py:模塊里有以_開頭的屬性m = 早上好_n = 下午好def _bar(): print(我是test3里的bar函數(shù))demo.pyfrom test1 import *from test2 import *from test3 import *print(a)fn()print(x)# print(y) 會報錯,test2的_all_里沒有變量 yfoo()print(m)# print(_n) 會報錯,導(dǎo)入test3時, _n 不會被導(dǎo)入import test3print(test3._n) # 也可以強行使用,但是強烈不建議_name_的使用在實際開中,當(dāng)一個開發(fā)人員編寫完一個模塊后,為了讓模塊能夠在項目中達到想要的效果,這個開發(fā)人員會自行在py文件中添加一些測試信息,例如:test1.pydef add(a,b): return a+b# 這段代碼應(yīng)該只有直接運行這個文件進行測試時才要執(zhí)行# 如果別的代碼導(dǎo)入本模塊,這段代碼不應(yīng)該被執(zhí)行ret = add(12,22)print(測試的結(jié)果是,ret)demo.pyim

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論