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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

4、把整個(gè)fib模塊導(dǎo)入到當(dāng)前的命名空間中,它只會(huì)將fib里的fibonacci單個(gè)函數(shù)引入from import *把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間也是可行的,只需使用如下聲明:from modname import *注意這提供了一個(gè)簡(jiǎn)單的方法來導(dǎo)入一個(gè)模塊中的所有項(xiàng)目。然而這種聲明不該被過多地使用。 as 別名In 1: import time as tt # 導(dǎo)入模塊時(shí)設(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í)設(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)模塊,這個(gè)模塊可以用來操作系統(tǒng)的功能,并且實(shí)現(xiàn)跨平臺(tái)操作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)建一個(gè)文件夾os.chdir(C:) # 切換工作目錄os.listdir(C:) # 列出指定目錄里的所有文件和文件夾 # nt-widonws posix-Linux/Unix或者M(jìn)acOSos.environ # 獲取到環(huán)境配置os.environ.get(PATH) # 獲取指定的環(huán)境配置os.path.abspath(path) # 獲取Path規(guī)范會(huì)的絕對(duì)路徑os.path.exists(path) # 如果Path存在,則返回T

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

21、輸入。可以通過它來獲取用戶的輸入sys.stdout # 標(biāo)準(zhǔn)輸出。可以通過修改它來百變默認(rèn)輸出sys.stderr # 錯(cuò)誤輸出??梢酝ㄟ^修改它來改變錯(cuò)誤刪除math模塊math模塊保存了數(shù)學(xué)計(jì)算相關(guān)的方法,可以很方便的實(shí)現(xiàn)數(shù)學(xué)運(yùn)算。import mathprint(math.fabs(-100) # 取絕對(duì)值print(math.ceil(34.01) #向上取整print(math.factorial(5) # 計(jì)算階乘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 模塊主要用于生成隨機(jī)數(shù)或者從一個(gè)列表里隨機(jī)獲取數(shù)據(jù)print(random.random() # 生成 0,1)的隨機(jī)浮點(diǎn)數(shù)print(random.uniform(20, 30) # 生成20,30的隨機(jī)浮點(diǎn)數(shù)print(random.randint(10, 30) # 生成10,30的隨機(jī)整數(shù)print(random.randrang

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

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

25、-%m-%d %H:%M:%S) # 按照指定格式輸出時(shí)間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模塊用來顯示一個(gè)日歷,使用的不多,了解即可。calendar.setfirstweekday(calendar.SUNDAY) # 設(shè)置每周起始日期碼。周一到周日分別對(duì)應(yīng) 0 6calendar.firstwee

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

27、供字符加密功能的模塊,包含MD5和SHA的加密算法,具體支持md5,sha1, sha224, sha256, sha384, sha512等算法。 該模塊在用戶登錄認(rèn)證方面應(yīng)用廣泛,對(duì)文本加密也很常見。import hashlib# 待加密信息str = 這是一個(gè)測(cè)試# 創(chuàng)建md5對(duì)象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算法也是一種一種單項(xiàng)加密算法,并且它是基于上面各種哈希算法/散列算法的,只是它可以在運(yùn)算過程中使用一個(gè)密鑰來增增強(qiáng)安全性。hmac模塊實(shí)現(xiàn)了HAMC算法,提供了相應(yīng)的函數(shù)和方法,且與hashlib提供的api基本一致。h = hmac.new(h.encode(),你好.encode()result =

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

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

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

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

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

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

35、件夾里創(chuàng)建pip.ini文件并輸入一下內(nèi)容:globalindex-url=/simpleinstalltrusted-host=常見國(guó)內(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/中國(guó)科技大學(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/中國(guó)科學(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命令可以來管理第三方資源包。這兩個(gè)命令的功能一致,都是用來顯示當(dāng)前環(huán)境里已經(jīng)安裝的包,區(qū)別在于pip list會(huì)列出所有的包,包括一些無法uninstall的包;而pip freeze只會(huì)列出我們安裝的第三方包??偨Y(jié)開發(fā)中,我們通常會(huì)使用很多第三方的資源包,我們?cè)趯⒊绦虿渴鸬椒?wù)器的時(shí)候,不僅要把代碼上傳到服務(wù)器,同時(shí)還需要把代碼里用到的第三方資源包告訴服務(wù)器。那么這里就有兩個(gè)問題:當(dāng)我們電腦上運(yùn)行很多個(gè)項(xiàng)目,每個(gè)項(xiàng)目使用的第三方資源包又不一致時(shí),怎樣將代碼和它使用到的第三方資源包放在一起呢?答:虛擬環(huán)境怎樣將自己代碼使用到的第三方資源包告訴給服務(wù)器?使用 pip freeze req

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

45、本上相當(dāng)于創(chuàng)建一個(gè)py文件。但是,需要注意的是,如果一個(gè)py文件要作為一個(gè)模塊被別的代碼使用,這個(gè)py文件的名字一定要遵守標(biāo)識(shí)符的命名規(guī)則。模塊的查找路徑創(chuàng)建一個(gè)模塊非常簡(jiǎn)單,安裝標(biāo)識(shí)符的命名規(guī)則創(chuàng)建一個(gè)py文件就是一個(gè)模塊。但是問題是,我們需要把創(chuàng)建好的這個(gè)py文件放在哪個(gè)位置,在代碼中使用import語(yǔ)句才能找到這個(gè)模塊呢?Python內(nèi)置sys模塊的path屬性,列出了程序運(yùn)行時(shí)查找模塊的目錄,只需要把我們創(chuàng)建好的模塊放到這些任意的一個(gè)目錄里即可。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)入一個(gè)模塊里所有的內(nèi)容時(shí),本質(zhì)上是去查找這個(gè)模塊的_all_屬性,將_all_屬性里聲明的所有內(nèi)容導(dǎo)入。如果這個(gè)模塊里沒有設(shè)置_all_屬性,此時(shí)才會(huì)導(dǎo)入這個(gè)模塊里的所有內(nèi)容。模塊里的私有成員模塊里以一個(gè)下劃線_開始的變量和函數(shù),是模塊里的私有成員,當(dāng)模塊被導(dǎo)入時(shí),以_開頭的變量默認(rèn)不會(huì)被導(dǎo)入。但是它不具有強(qiáng)制性,如果一個(gè)代碼強(qiáng)行使用以_開頭的變量,有時(shí)也可以。但是強(qiáng)烈不建議這樣使用,因?yàn)橛锌赡軙?huì)出問題??偨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) 會(huì)報(bào)錯(cuò),test2的_all_里沒有變量 yfoo()print(m)# print(_n) 會(huì)報(bào)錯(cuò),導(dǎo)入test3時(shí), _n 不會(huì)被導(dǎo)入import test3print(test3._n) # 也可以強(qiáng)行使用,但是強(qiáng)烈不建議_name_的使用在實(shí)際開中,當(dāng)一個(gè)開發(fā)人員編寫完一個(gè)模塊后,為了讓模塊能夠在項(xiàng)目中達(dá)到想要的效果,這個(gè)開發(fā)人員會(huì)自行在py文件中添加一些測(cè)試信息,例如:test1.pydef add(a,b): return a+b# 這段代碼應(yīng)該只有直接運(yùn)行這個(gè)文件進(jìn)行測(cè)試時(shí)才要執(zhí)行# 如果別的代碼導(dǎo)入本模塊,這段代碼不應(yīng)該被執(zhí)行ret = add(12,22)print(測(cè)試的結(jié)果是,ret)demo.pyim

溫馨提示

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

評(píng)論

0/150

提交評(píng)論