Python編程基礎(chǔ)-Python常用的內(nèi)置模塊_第1頁(yè)
Python編程基礎(chǔ)-Python常用的內(nèi)置模塊_第2頁(yè)
Python編程基礎(chǔ)-Python常用的內(nèi)置模塊_第3頁(yè)
Python編程基礎(chǔ)-Python常用的內(nèi)置模塊_第4頁(yè)
Python編程基礎(chǔ)-Python常用的內(nèi)置模塊_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

常用模塊和庫(kù)——校園卡消費(fèi)行為分析1使用math模塊實(shí)現(xiàn)數(shù)學(xué)計(jì)算目錄使用os、shutil模塊實(shí)現(xiàn)文件的增刪改查等操作2使用random模塊生成隨機(jī)數(shù)3使用datetime模塊獲得用戶(hù)用餐時(shí)長(zhǎng)4使用re模塊獲得字符串中的名字、電話5os模塊及shutil模塊os模塊1、查詢(xún)操作系統(tǒng)2、查詢(xún)工作路徑3、查詢(xún)指定目錄下面的文件#查詢(xún)操作系統(tǒng)importos#查詢(xún)操作系統(tǒng)名稱(chēng)os.sep#查詢(xún)文件路徑的分割符os.linesep#查詢(xún)當(dāng)前平臺(tái)使用的行終止符#查詢(xún)工作路徑path=os.getcwd()#查詢(xún)當(dāng)前工作目錄,并賦值給pathprint(path)#查詢(xún)指定目錄下的文件os.listdir(path)

#查詢(xún)當(dāng)前工作目錄下的文件os模塊及shutil模塊os模塊4、刪除文件5、創(chuàng)建與刪除目錄#刪除文件os.remove('C:\\Users\\tipdm-062\\.ipython\\1.txt')#刪除指定文件#創(chuàng)建與刪除目錄file_name='C:\\Users\\tipdm-062\\my_file'os.mkdir(file_name)#創(chuàng)建文件夾os.rmdir(file_name)#刪除文件夾os模塊及shutil模塊函數(shù)名稱(chēng)函數(shù)應(yīng)用os.path.isdir(name)判斷name是不是目錄,不是目錄就返回false。os.path.isfile(name)判斷name這個(gè)文件是否存在,不存在返回falseos.path.exists(name)判斷是否存在文件或目錄name。os.path.getsize(name)或得文件大小,如果name是目錄返回0Los.path.abspath(name)獲得絕對(duì)路徑os.path.isabs()判斷是否為絕對(duì)路徑os.path.normpath(path)規(guī)范path字符串形式os.path.split(name)分割文件名與目錄(事實(shí)上,如果完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)。os.path.splitext()分離文件名和擴(kuò)展名。os.path.join(path,name)連接目錄與文件名或目錄os.path.basename(path)返回文件名os.path.dirname(path)返回文件路徑。文件路徑操作函數(shù)os模塊及shutil模塊shutil模塊#改變路徑importshutilshutil.move('C:\\Users\\tipdm-062\\.ipython\\1.txt','C:\\Users\\tipdm-062\\wode')#若存在將會(huì)被重寫(xiě)importshutilshutil.move('C:\\Users\\tipdm-062\\wode\\1.txt','C:\\Users\\tipdm-062\\MyText.txt')1、移動(dòng)文件或文件夾os模塊及shutil模塊shutil模塊2、復(fù)制文件#復(fù)制文件importshutilshutil.copyfile('2.py','2.py.copy')

#跨路徑復(fù)制文件importshutilshutil.copy('C:\\Users\\tipdm-062\\1.txt','C:\\Users\\tipdm-062\\MyFile.txt')os模塊及shutil模塊shutil模塊3、永久刪除文件和文件夾os.unlink函數(shù)會(huì)刪除指定的文件。os.rmdir函數(shù)會(huì)刪除路徑指定的文件夾,但是這個(gè)文件夾必須是空的,不包含任何文件或子文件夾而shutil.rmtree函數(shù)則可以刪除路徑指定的文件夾,并且在這個(gè)文件夾里面的所有文件和子文件夾都會(huì)被刪除。4、壓縮與解壓文件對(duì)壓縮文件進(jìn)行解壓處理需要用到shutil.unpack_archive函數(shù)1使用math模塊實(shí)現(xiàn)數(shù)學(xué)計(jì)算目錄使用os、shutil模塊實(shí)現(xiàn)文件的增刪改查等操作2使用random模塊生成隨機(jī)數(shù)3使用datetime模塊獲得用戶(hù)用餐時(shí)長(zhǎng)4使用re模塊獲得字符串中的名字、電話5math模塊是Python中用于進(jìn)行數(shù)值和數(shù)學(xué)計(jì)算的模塊,該模塊提供了對(duì)C標(biāo)準(zhǔn)定義的數(shù)學(xué)函數(shù)的訪問(wèn)。math模塊所提供的這些函數(shù)不適用于復(fù)數(shù)的計(jì)算。使用相應(yīng)函數(shù)的計(jì)算時(shí)是不能直接訪問(wèn)的,需要先導(dǎo)入math模塊,然后通過(guò)math靜態(tài)對(duì)象調(diào)用對(duì)應(yīng)的計(jì)算函數(shù)。一般情況下使用math模塊進(jìn)行計(jì)算所返回的值均為浮點(diǎn)型的數(shù)值結(jié)果。math1.認(rèn)識(shí)math模塊常用的三角函數(shù)及作用說(shuō)明如下表。math函數(shù)名稱(chēng)說(shuō)明math.sin返回弧度值的正弦值math.cos返回弧度值的余弦值math.tan返回弧度值的正切值math.asin返回弧度值的反正弦值math.acos返回弧度值的反余弦值math.atan返回弧度值的反正切值math.radians將角度轉(zhuǎn)換為弧度math.degrees將弧度轉(zhuǎn)換為角度常用的冪函數(shù)和對(duì)數(shù)函數(shù)及作用說(shuō)明如下表。math函數(shù)名稱(chēng)說(shuō)明math.exp返回以e為底的x次冪的數(shù)值,其中e=2.718281…math.expm1返回以e為底x次冪的值減1math.log返回以e或其他值為底的自然對(duì)數(shù)值math.log1p返回1+x(以e為底)的自然對(duì)數(shù)值math.log2返回以2為底x的對(duì)數(shù)值math.log10返回以10為底x的對(duì)數(shù)值math.pow返回x的y次冪的值math.sqrt返回x的平方根值常用的數(shù)學(xué)常量函數(shù)及作用說(shuō)明如下表。math函數(shù)名稱(chēng)說(shuō)明math.pi返回?cái)?shù)學(xué)ematical常數(shù)π的值math.e返回?cái)?shù)學(xué)ematical常數(shù)e的值math.tau返回?cái)?shù)學(xué)ematical常數(shù)τ的值math.inf用于表示浮點(diǎn)正無(wú)窮大math.nan用于表示浮點(diǎn)“非數(shù)字”(NaN)值使用sin函數(shù)可計(jì)算并返回x(弧度)的三角正弦值。使用cos函數(shù)可計(jì)算并返回x(弧度)的三角余弦值。使用tan函數(shù)可計(jì)算并返回x(弧度)的三角正切值。3種函數(shù)的x(弧度)的取值均為任意值,返回的數(shù)值結(jié)果均為-1到1之間。math2.運(yùn)用三角函數(shù)importmathprint(math.sin(2))#計(jì)算當(dāng)弧度為2時(shí)的正弦值print(math.cos(4))#計(jì)算當(dāng)弧度為4時(shí)的余弦值print(math.tan(8))#計(jì)算當(dāng)弧度為8時(shí)的正切值mathsin函數(shù)、cos函數(shù)、tan函數(shù)的計(jì)算代碼如下。(1)exp、pow函數(shù)使用exp函數(shù)可計(jì)算并返回e次方的x次冪的值,其中e表示的是自然對(duì)數(shù)的基數(shù),其取值約為2.7。使用pow函數(shù)可計(jì)算并返回x的y次冪,其中x和y為數(shù)值表達(dá)式。當(dāng)x的取值為0或NaN時(shí),pow(1.0,x)和pow(x,0.0)的結(jié)果總是返回1.0。當(dāng)x的取值為負(fù)數(shù),且y不為整數(shù)時(shí),pow函數(shù)便無(wú)法進(jìn)行數(shù)學(xué)計(jì)算。math3.運(yùn)用冪函數(shù)與對(duì)數(shù)函數(shù)print(math.exp(50))#計(jì)算e次方的50次冪print(math.pow(2,5))#計(jì)算2次方的5次冪math

exp函數(shù)和pow函數(shù)的計(jì)算代碼如下。(2)log函數(shù)使用log函數(shù)可計(jì)算并返回指定x的自然對(duì)數(shù)值,x的取值為大于0的任意數(shù)值。log函數(shù)還可指定底數(shù)的取值,若使用時(shí)未指定底數(shù)值,則函數(shù)會(huì)默認(rèn)底數(shù)值為自然數(shù)e。mathprint(math.log(100))#計(jì)算當(dāng)默認(rèn)底數(shù)為e,x為100時(shí)的自然對(duì)數(shù)值print(math.log(20,4))#計(jì)算當(dāng)指定底數(shù)為20,x為4時(shí)的自然對(duì)數(shù)值math

log函數(shù)的計(jì)算代碼如下。(3)sqrt函數(shù)使用sqrt函數(shù)可計(jì)算并返回x的平方根,其中x為大于0的任意數(shù)值。sqrt函數(shù)的計(jì)算代碼如下。mathprint(math.sqrt(64))#計(jì)算當(dāng)x為64時(shí)的平方根1使用math模塊實(shí)現(xiàn)數(shù)學(xué)計(jì)算目錄使用os、shutil模塊實(shí)現(xiàn)文件的增刪改查等操作2使用random模塊生成隨機(jī)數(shù)3使用datetime模塊獲得用戶(hù)用餐時(shí)長(zhǎng)4使用re模塊獲得字符串中的名字、電話5random模塊是Python中一個(gè)用于生成偽隨機(jī)數(shù)生成器模塊。random模塊可生成6種不同功能及狀態(tài)的隨機(jī)數(shù),包含簿記功能、字節(jié)函數(shù)、整數(shù)函數(shù)、序列函數(shù)、實(shí)值分布、替代生成器。當(dāng)使用默認(rèn)的偽隨機(jī)數(shù)生成器的類(lèi)時(shí)類(lèi)中的類(lèi)型必須為NoneType、int、float、str、bytes或bytearray中的一種。當(dāng)使用系統(tǒng)提供的類(lèi)時(shí)需注意類(lèi)并非在所有系統(tǒng)上都可用,同時(shí)系統(tǒng)提供的類(lèi)不依賴(lài)軟件狀態(tài)。random1.認(rèn)識(shí)random模塊random模塊中所常用的函數(shù)及其作用進(jìn)行簡(jiǎn)單介紹如下。整數(shù)函數(shù)及作用說(shuō)明如下表。random函數(shù)名稱(chēng)說(shuō)明random.randrange返回一個(gè)小于指定數(shù)值隨機(jī)整數(shù),或指定數(shù)值范圍內(nèi)和步長(zhǎng)的隨機(jī)整數(shù)random.randint返回一個(gè)包含指定范圍的隨機(jī)整數(shù)random.getrandbits返回具有指定個(gè)數(shù)隨機(jī)位的非負(fù)整數(shù)序列函數(shù)及作用說(shuō)明如下表。random函數(shù)名稱(chēng)說(shuō)明random.choice從非空序列中返回一個(gè)隨機(jī)元素random.choices返回從總體中選擇的元素的值大小列表,并進(jìn)行替換random.shuffle將輸入的序列進(jìn)行隨機(jī)的排序random.sample返回從總體序列或集合中選擇的唯一元素的k長(zhǎng)度的列表常用的實(shí)值分布函數(shù)及作用說(shuō)明如下表。random函數(shù)名稱(chēng)說(shuō)明random.random返回范圍為[0.0,1.0)下的一個(gè)隨機(jī)浮點(diǎn)數(shù)random.uniform返回在指定范圍下的一個(gè)隨機(jī)浮點(diǎn)數(shù)random.triangular返回一個(gè)包含指定范圍內(nèi)的三角形分布的隨機(jī)數(shù)random.betavariate滿(mǎn)足β分布,返回的結(jié)果在0~1之間的隨機(jī)浮點(diǎn)數(shù)random.lognormvariate返回滿(mǎn)足對(duì)數(shù)正態(tài)分布的隨機(jī)浮點(diǎn)數(shù)random.normalvariate返回滿(mǎn)足正態(tài)分布的隨機(jī)浮點(diǎn)數(shù)Python提供了隨機(jī)浮點(diǎn)數(shù)的生成,通過(guò)指定的函數(shù)便可生成各種各樣符合需求者的取值結(jié)果。使用random函數(shù)可生成并返回默認(rèn)范圍為[0.0,1.0)下的一個(gè)隨機(jī)浮點(diǎn)數(shù)。使用uniform函數(shù)可生成并返回指定始末范圍內(nèi)的一個(gè)隨機(jī)浮點(diǎn)數(shù)。random2.生成隨機(jī)浮點(diǎn)數(shù)importrandomprint(random.random())#產(chǎn)生一個(gè)函數(shù)默認(rèn)范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù)print(random.uniform(5,6))#產(chǎn)生一個(gè)在[5,6]之間的隨機(jī)浮點(diǎn)數(shù)randomrandom函數(shù)和uniform函數(shù)的計(jì)算代碼如下。在Python中可實(shí)現(xiàn)在指定限制條件下生成隨機(jī)整數(shù),使用randrange函數(shù)可生成并返回一個(gè)隨機(jī)的整數(shù)。需注意randrange函數(shù)中的參數(shù)設(shè)置會(huì)影響生成的隨機(jī)整數(shù),該函數(shù)的參數(shù)需都為整數(shù)。random3.生成隨機(jī)整數(shù)randrange函數(shù)參數(shù)的數(shù)量設(shè)置還可分為以下3種情況。當(dāng)僅存在一個(gè)參數(shù)時(shí),此時(shí)函數(shù)會(huì)隨機(jī)生成一個(gè)小于且不等于該參數(shù)的隨機(jī)整數(shù)。當(dāng)存在兩個(gè)參數(shù)時(shí),便可建立了生成的隨機(jī)整數(shù)的范圍,且生成的隨機(jī)整數(shù)大于等于第一個(gè)參數(shù)值,小于第二個(gè)參數(shù)值當(dāng)存在3個(gè)參數(shù)時(shí),前兩個(gè)參數(shù)的作用與情況二相同,而第3個(gè)參數(shù)所起到的作用為限制了隨機(jī)整數(shù)的步長(zhǎng)。randomprint(random.randrange(3))#產(chǎn)生一個(gè)小于3的隨機(jī)整數(shù)print(random.randrange(3,5))#產(chǎn)生一個(gè)在[3,5)之間的隨機(jī)整數(shù)#產(chǎn)生一個(gè)[5,10)之間且在5的基礎(chǔ)上依次迭代2的隨機(jī)整數(shù)print(random.randrange(5,10,2))randomrandrange函數(shù)的計(jì)算代碼如下。利用random模塊從給定的序列中進(jìn)行隨機(jī)的抽取,即可獲得(或生成)隨機(jī)的元素。使用choice函數(shù)可從一個(gè)非空序列中返回一個(gè)隨機(jī)元素,該序列的形式可為列表、元組或字符串。使用sample函數(shù)可返回從總體序列或集合中選擇的唯一元素的k個(gè)長(zhǎng)度的列表,在生活中常用于無(wú)重復(fù)的隨機(jī)抽樣。random4.從序列中生成隨機(jī)元素choice函數(shù):print(random.choice([6,7,8,9,10,11]))#可得到一個(gè)在列表中的隨機(jī)元素sample函數(shù):list=['I','Am','Student']print(random.sample(list,2))#可得到一個(gè)在列表中隨機(jī)選取指定個(gè)數(shù)的元素列表randomchoice函數(shù)和sample函數(shù)的計(jì)算代碼如下。1使用math模塊實(shí)現(xiàn)數(shù)學(xué)計(jì)算目錄使用os、shutil模塊實(shí)現(xiàn)文件的增刪改查等操作2使用random模塊生成隨機(jī)數(shù)3使用datetime模塊獲得用戶(hù)用餐時(shí)長(zhǎng)4使用re模塊獲得字符串中的名字、電話5datetime模塊是Python中的一個(gè)用于操作日期和時(shí)間的模塊,包含字符串類(lèi)型與時(shí)間類(lèi)型的相互轉(zhuǎn)換、時(shí)間算術(shù)運(yùn)算、標(biāo)準(zhǔn)時(shí)間時(shí)區(qū)轉(zhuǎn)換等操作。datetime模塊下主要有date、time和datetime類(lèi)等,其中,date類(lèi)用于日期類(lèi)型,time類(lèi)用于時(shí)間類(lèi)型,而datetime類(lèi)相當(dāng)于time、date類(lèi)的結(jié)合,包含了這兩個(gè)類(lèi)的全部方法。datetime1.認(rèn)識(shí)datetime模塊date類(lèi)相關(guān)的方法及作用說(shuō)明如下表。datetime方法名稱(chēng)說(shuō)明date.today()返回當(dāng)前日期date.fromtimestamp()返回時(shí)間戳的date對(duì)象date.fromisoformat()返回格式為“YYYY-MM-DD”的日期字符串轉(zhuǎn)化的date對(duì)象date.fromisocalendar()返回對(duì)應(yīng)的ISO日歷日期指定的年、周和天的date對(duì)象date.replace()返回一個(gè)替換指定日期字段的新date對(duì)象date.timetuple()返回date對(duì)象的時(shí)間元組續(xù)表。datetime方法名稱(chēng)說(shuō)明date.weekday()返回指定日期所在的星期數(shù)(周一為0、周日為6)date.isoweekday()返回符合ISO標(biāo)準(zhǔn)的指定日期所在的星期數(shù)(周一為1、周日為7)date.isocalendar()返回一個(gè)包含3個(gè)值的元組,3個(gè)值依次為年份、周數(shù)、星期數(shù)(周一為1、周日為7)date.isoformat()返回符合ISO的日期字符串,如YYYY-MM-DDdate.strftime()返回date對(duì)象轉(zhuǎn)化的指定格式的字符串time類(lèi)相關(guān)的方法及作用說(shuō)明如下表。datetime方法名稱(chēng)說(shuō)明time.fromisoformat()返回ISO格式的時(shí)間字符串轉(zhuǎn)化的一個(gè)time對(duì)象,如HH:MM:SS:fffftime.replace()返回一個(gè)替換指定日期字段的新time對(duì)象time.isoformat()返回time對(duì)象轉(zhuǎn)化的ISO格式的時(shí)間字符串time.strftime()返回time對(duì)象轉(zhuǎn)化的給定格式的字符串,如%H:%M:%Sdatetime類(lèi)相關(guān)的方法及作用說(shuō)明如下表。datetime方法名稱(chēng)說(shuō)明datetime.now()返回當(dāng)前日期時(shí)間的datetime對(duì)象datetime.utcnow()返回當(dāng)前日期時(shí)間的UTCdatetime對(duì)象datetime.utcfromtimestamp()返回UTC時(shí)間戳的datetime對(duì)象bine()返回date對(duì)象和time對(duì)象合并的datetime對(duì)象datetime.strptime()返回給定的字符串、時(shí)間格式對(duì)應(yīng)的datetime對(duì)象datetime.timetz()返回具有相同時(shí)、分、秒、微秒、倍數(shù)和tzinfo的時(shí)間對(duì)象datetime.timestamp()返回時(shí)間戳(1)使用date類(lèi)讀者可以使用date類(lèi)創(chuàng)建一個(gè)date型的對(duì)象,date類(lèi)的語(yǔ)法格式如下。datetime2.時(shí)間數(shù)據(jù)基礎(chǔ)操作classdatetime.date(year,month,day)date類(lèi)的參數(shù)及其說(shuō)明如下表。datetime參數(shù)名稱(chēng)說(shuō)明year接收int。表示年,范圍是[1,9999]。無(wú)默認(rèn)值month接收int。表示月,范圍是[1,12]。無(wú)默認(rèn)值day接收int。表示天數(shù),即當(dāng)月中的第幾天。無(wú)默認(rèn)值需要注意的是,date類(lèi)的參數(shù)必須有3個(gè)完整的year值、month值和day值,否則程序運(yùn)行將會(huì)報(bào)錯(cuò)。在date類(lèi)創(chuàng)建的對(duì)象中,擁有year、month和day這3個(gè)屬性,如果需要改變對(duì)象屬性的值,那么可以使用date.replace()方法。date.replace()方法的語(yǔ)法格式如下。datetimedate.replace(year=self.year,month=self.month,day=self.day)fromdatetimeimportdate,time,datetimed=date(2021,11,8)#創(chuàng)建date型的對(duì)象print('年:{}\n月:{}\n日:{}'.format(d.year,d.month,d.day))d1=d.replace(year=2019,day=5)#改變?nèi)掌诘哪旰腿誴rint('年:{}\n月:{}\n日:{}'.format(d1.year,d1.month,d1.day))datetime用對(duì)象的基本屬性獲得日期的年、月、日,并使用date.replace()方法改變年和日,代碼如下。print(d.timetuple())print(d.weekday())#得到日期的星期數(shù),周一為0print(d.isoweekday())#得到日期的星期數(shù),周一為1print(d.isocalendar())#得到日期的年份、周數(shù)、星期數(shù)(周一為1)datetime日期轉(zhuǎn)化為星期數(shù),代碼如下。print(d.isoformat())#字符串型print(date.fromisoformat('2021-11-08’))print(date.toordinal(d))#整型print(date.fromordinal(738102))datetimedate對(duì)象與字符串型和整型進(jìn)行相互轉(zhuǎn)換,代碼如下。(2)使用time類(lèi)使用time類(lèi)創(chuàng)建一個(gè)time型的對(duì)象,time類(lèi)的語(yǔ)法格式如下。datetimeclassdatetime.time(hour=0,minute=0,second=0,microsecond=0,tzinfo=None,*,fold=0)time類(lèi)的主要參數(shù)及其說(shuō)明如下表。datetime參數(shù)名稱(chēng)說(shuō)明hour接收int。表示小時(shí),范圍是[0,24]。默認(rèn)為0minute接收int。表示分鐘,范圍是[0,60]。默認(rèn)為0second接收int。表示秒鐘,范圍是[0,60]。默認(rèn)為0microsecond接收int。表示微秒,范圍是[0,1000000]。默認(rèn)為0在創(chuàng)建time對(duì)象時(shí)可以不用完整的輸入時(shí)、分、秒、微秒,對(duì)于缺少的值程序會(huì)默認(rèn)為0。在time類(lèi)創(chuàng)建的對(duì)象中,擁有hour、minute、second和microsecond這4個(gè)屬性。如果需要改變對(duì)象屬性的值,那么可以使用time.replace()方法。time.replace()方法的語(yǔ)法格式如下。time.replace(hour=self.hour,minute=self.minute,second=self.second,microsecond=self.microsecond,tzinfo=self.tzinfo,*,fold=0)在time.replace()方法中,前5個(gè)參數(shù)的默認(rèn)值為對(duì)應(yīng)參數(shù)的形參新值,與time類(lèi)參數(shù)的默認(rèn)值不同,其余均相同。datetimet=time(10)print(t)print('時(shí):{}\n分:{}\n秒:{}\n微秒:{}'\.format(t.hour,t.minute,t.second,t.microsecond))t=t.replace(minute=30)print('時(shí):{}\n分:{}\n秒:{}\n微秒:{}'\.format(t.hour,t.minute,t.second,t.microsecond))datetime調(diào)用對(duì)象的基本屬性獲得時(shí)間的時(shí)、分、秒、微秒,并使用time.replace()方法改變時(shí)間當(dāng)中的分,代碼如下。print(t.strftime('%H:%M:%S:%f'))#指定得到字符串的形狀print(t.strftime('%H:%M’))print(time.fromisoformat('10:30:00:000000'))#字符串轉(zhuǎn)時(shí)間print(t.isoformat())datetime使用time.strftime()方法對(duì)字符串型進(jìn)行相互轉(zhuǎn)換,代碼如下。(3)使用datetime類(lèi)由于datetime類(lèi)相當(dāng)于date、time類(lèi)的結(jié)合,所以可以根據(jù)前面創(chuàng)建的date對(duì)象和time對(duì)象,使用combine()方法將兩者合并為一個(gè)datetime對(duì)象。datetime類(lèi)的語(yǔ)法格式如下。classdatetime.datetime(year,month,day,hour=0,minute=0,second=0,microsecond=0,tzinfo=None,*,fold=0)

datetime修改datetime對(duì)象的基本屬性可以使用datetime.replace()方法,其語(yǔ)法格式如下。datetime.replace(year=self.year,month=self.month,day=self.day,hour=self.hour,minute=self.minute,second=self.second,microsecond=self.microsecond,tzinfo=self.tzinfo,*,fold=0)datetime.replace()方法的參數(shù)是date.replace()方法和time.replace()方法的參數(shù)的結(jié)合,此處將不再過(guò)多的描述。datetimedt=bine(d,t)#合并日期和時(shí)間print(dt)print(dt.date())#獲得日期部分print(dt.time())#獲得時(shí)間部分datetime創(chuàng)建datetime對(duì)象并獲得日期和時(shí)間部分,代碼如下。1使用math模塊實(shí)現(xiàn)數(shù)學(xué)計(jì)算目錄使用os、shutil模塊實(shí)現(xiàn)文件的增刪改查等操作2使用random模塊生成隨機(jī)數(shù)3使用datetime模塊獲得用戶(hù)用餐時(shí)長(zhǎng)4使用re模塊獲得字符串中的名字、電話5re模塊提供了與Perl語(yǔ)言類(lèi)似的正則表達(dá)式匹配操作。re模塊將正則表達(dá)式編譯成模式對(duì)象,然后通過(guò)這些模式對(duì)象執(zhí)行模式匹配搜索、字符串分割、字符串替換等操作。re模塊使Python語(yǔ)言擁有全部的正則表達(dá)式功能。re1.認(rèn)識(shí)re模塊什么是正則表達(dá)式:正則表達(dá)式是對(duì)字符串操作的一種邏輯公式;是一個(gè)小巧的、高度專(zhuān)用的編程語(yǔ)言。通過(guò)正則表達(dá)式可以對(duì)指定的文本實(shí)現(xiàn)匹配測(cè)試、內(nèi)容查找、內(nèi)容替換、字符串分割等功能。正則表達(dá)式的設(shè)計(jì)思想是使用一種描述性的語(yǔ)言給字符串定義一個(gè)規(guī)則,凡是符合規(guī)則的字符串,即可匹配成功,否則匹配不成功。re在re模塊中相關(guān)的函數(shù)及作用說(shuō)明如下表。re函數(shù)名稱(chēng)說(shuō)明re.findall匹配字符串中的全部樣式,返回組合列表re.search匹配符合樣式的第一個(gè)位置,返回包含匹配信息的對(duì)象re.split按匹配樣式切分字符串,返回列表re.sub替換匹配樣式的文本,返回字符串re.match匹配0到多個(gè)樣式,返回包含匹配信息的對(duì)象re.fullmatch匹配整個(gè)字符串,返回包含匹配信息的對(duì)象re.finditer匹配字符串中的全部樣式,返回迭代器保存的匹配對(duì)象re.subn替換匹配樣式的文本,返回元組re.escape轉(zhuǎn)義樣式中的特殊字符(1)findall函數(shù)findall函數(shù)返回的是正則表達(dá)式在字符串中所有匹配結(jié)果的列表。findall函數(shù)的語(yǔ)法格式如下。re.findall(pattern,string,flags=0)re2.re模塊常用函數(shù)findall函數(shù)的參數(shù)及其說(shuō)明如下表。re參數(shù)名稱(chēng)說(shuō)明pattern接收str。表示匹配的正則表達(dá)式樣式。無(wú)默認(rèn)值string接收str。表示需要匹配的字符串。無(wú)默認(rèn)值flags接收int或函數(shù)。表示編譯標(biāo)志,用來(lái)修改正則表達(dá)式的匹配方法。默認(rèn)為0如果正則表達(dá)式與字符串匹配成功,那么將會(huì)以列表的形式返回字符串string中所有與pattern相匹配的全部字串。如果匹配失敗,那么將會(huì)返回一個(gè)空列表。importrestring1='正則表達(dá)式一般由一些普通字符和一些元字符組成。'+\'正則表達(dá)式是一種可以用于模式匹配和替換的工具'print(re.findall('正則表達(dá)式',string1))#返回一個(gè)列表re使用findall函數(shù)匹配“正則表達(dá)式”,代碼如下。(2)search函數(shù)search函數(shù)在整個(gè)字符串內(nèi)對(duì)正則表達(dá)式進(jìn)行匹配,找到第一個(gè)匹配后返回一個(gè)包含匹配信息的對(duì)象。search函數(shù)的語(yǔ)法格式如下。re.search(pattern,string,flags=0)search函數(shù)的參數(shù)說(shuō)明和findall函數(shù)的參數(shù)說(shuō)明相同。re如果字符串中沒(méi)有能夠匹配的對(duì)象,那么返回None。與findall函數(shù)不同的是,search函數(shù)并不要求從字符串的開(kāi)頭進(jìn)行匹配,即正則表達(dá)式可以是字符串的一部分。使用search函數(shù)匹配“正則表達(dá)式”,代碼如下。reprint(re.search('正則表達(dá)式',string1))#返回一個(gè)匹配(3)split函數(shù)split函數(shù)能夠按照匹配的正則表達(dá)式將字符串進(jìn)行切分,并返回切分后的字符串列表。split函數(shù)的語(yǔ)法格式如下。re.split(pattern,string,maxsplit=0,flags=0)re在split函數(shù)中,pattern、string和flags的參數(shù)說(shuō)明與findall函數(shù)的參數(shù)說(shuō)明相同。相比于findall函數(shù),split函數(shù)多了一個(gè)maxsplit參數(shù),其接收int型,表示最大分割次數(shù)。如果不指定maxsplit值,那么字符串將被全部分割,該參數(shù)默認(rèn)為0。如果沒(méi)有可匹配的項(xiàng),那么將會(huì)返回原來(lái)的字符串。rep_string=string1.split('。')#按句號(hào)進(jìn)行切分print(p_string)re使用split函數(shù)按“?!鼻蟹治谋荆a如下。(3)sub函數(shù)sub函數(shù)能夠找到所有匹配正則表達(dá)式的字符串并用指定的字符串替換。sub函數(shù)的語(yǔ)法格式如下。re.sub(pattern,repl,stringcount=0,flags=0)如果字符串string中的內(nèi)容匹配了正則表達(dá)式,那么會(huì)將匹配到的字符串替換成repl。resub函數(shù)的參數(shù)及其說(shuō)明如下表。re參數(shù)名稱(chēng)說(shuō)明pattern接收str。表示匹配的正則表達(dá)式樣式。無(wú)默認(rèn)值repl接收str或函數(shù)。若為字符串,則表示反斜杠轉(zhuǎn)義序列被處理;若為函數(shù),則對(duì)每個(gè)非重復(fù)的pattern的情況調(diào)用。無(wú)默認(rèn)值string接收str。表示需要匹配的字符串。無(wú)默認(rèn)值count接收int。表示要替換的最大次數(shù)。默認(rèn)為0flags接收int或函數(shù)。表示編譯標(biāo)志,用來(lái)修改正則表達(dá)式的匹配方法。默認(rèn)為0print(re.sub('正則表達(dá)式','zzbds',string1))#文本替換re使用sub函數(shù)替換指定文本,代碼如下。正則表達(dá)式通常由一些普通字符和一些元字符組成。元字符的應(yīng)用是正則表達(dá)式強(qiáng)大的原因,元字符由特殊符號(hào)組成,定義了字符集合、子組匹配、模式重復(fù)次數(shù)。元字符通過(guò)轉(zhuǎn)義字符和其它符號(hào)的組合進(jìn)行字符匹配,使得正則表達(dá)式不僅可以匹配一個(gè)字符串,而且可以匹配字符串集合。re3.正則表達(dá)式語(yǔ)法(1)字符匹配大多數(shù)字母和字符只會(huì)匹配其本身。但此規(guī)則也有例外,一些字符是特殊的字符,不會(huì)匹配其本身。特殊的字符表示應(yīng)該匹配一些獨(dú)特的東西,或通過(guò)重復(fù)它們或改變它們的含義來(lái)影響正則的其他部分。re常見(jiàn)的特殊字符如下表。re字符說(shuō)明.表示匹配除去換行符“\n”之外的任意一個(gè)字符[]表示匹配多個(gè)字符,在中括號(hào)內(nèi)部的所有字符都會(huì)被匹配|表示用于對(duì)左右兩個(gè)正則表達(dá)式進(jìn)行匹配^表示匹配字符串起始位置的內(nèi)容$表示匹配字符串的結(jié)束位置的內(nèi)容?表示符號(hào)前的元素是可選,并且最多匹配1次續(xù)表。re字符說(shuō)明*表示符號(hào)前的元素會(huì)被匹配0次或多次+表示符號(hào)前的元素會(huì)被匹配1次或多次{n}表示符號(hào)前的元素會(huì)正好被匹配n次{n,}表示符號(hào)前的元素至少會(huì)被匹配n次{n,m}表示符號(hào)前的元素至少匹配n次,至多匹配m次print(re.findall('正.表達(dá)式',string1))#匹配除換行符外的任意一個(gè)字符print(re.findall('一[般些]',string1))#匹配“[]”內(nèi)的任意一個(gè)字符print(re.findall('正則表|正則表達(dá)式',string1))#使用“|”進(jìn)行匹配re使用特殊字符進(jìn)行匹配的示例,代碼如下。#匹配以“正則”為起始位置的內(nèi)容forlineinp_string:iflen(re.findall('^正則',line)):prin

溫馨提示

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

評(píng)論

0/150

提交評(píng)論