[Python][華為云Python編程創(chuàng)造營(yíng)][學(xué)習(xí)筆記](méi)[07_模塊和標(biāo)準(zhǔn)庫(kù)]

      網(wǎng)友投稿 724 2025-04-01

      1,輪子和模塊

      1.1,程序員和輪子

      - 程序員:"不要重復(fù)造輪子"。

      1.2,程序中的輪子

      - 在程序中,我們將封裝好的組件、庫(kù)稱為輪子。它可以拿來(lái)直接用,實(shí)現(xiàn)對(duì)應(yīng)的功能。

      - 發(fā)明輪組與造輪子:不要重復(fù)發(fā)明輪子

      - 在Python中一個(gè)工具庫(kù)就像是一個(gè)輪子:一個(gè)輪子由很多模塊組成。

      1.3,模塊簡(jiǎn)介(1)

      - 在計(jì)算機(jī)程序的開發(fā)過(guò)程中,隨著代碼增多,在一個(gè)文件里代碼會(huì)越來(lái)越長(zhǎng),越來(lái)越不容易維護(hù)。

      - 為了編寫可維護(hù)的代碼,我們把很多函數(shù)分組,分別放到不同的文件里,這樣,每個(gè)文件包含的代碼就相對(duì)較少,很多編程語(yǔ)言都采用這種組織代碼的方式。在Python中,一個(gè).py文件就可以稱之為一個(gè)模塊(module)。

      1.4,模塊簡(jiǎn)介(2)

      - 第三方工具包:

      Pandas:數(shù)據(jù)處理與分析

      Numpy:科學(xué)計(jì)算

      Matplotlib:繪圖

      Scikit-learn:基于SciPy和Numpy的開源機(jī)器學(xué)習(xí)模塊

      Tensorflow:深度學(xué)習(xí)框架

      - 標(biāo)準(zhǔn)庫(kù):

      os,sys,time

      1.5,模塊的作用

      - 模塊是Python中的最高級(jí)別組織單元,它將程序代碼和數(shù)據(jù)封裝起來(lái)以便重用。

      - 模塊的三個(gè)角色:

      代碼重用。

      系統(tǒng)命名空間的劃分(模塊可理解為變量名的封裝,即模塊就是命名空間)。

      實(shí)現(xiàn)共享服務(wù)和數(shù)據(jù)。

      1.6,Python程序的架構(gòu)

      - Python源代碼文件:*.py。

      - 一個(gè)py文件是一個(gè)模塊(module)。

      - 多個(gè)模塊可以組成一個(gè)包(package)。

      - 包是一個(gè)目錄。要被python視為包,目錄中必須包含__init__.py文件,包的導(dǎo)入會(huì)首先執(zhí)行__init__.py。其他模塊加入包中,放入包的目錄即可。

      1.7,模塊的執(zhí)行環(huán)境

      - 模塊包含變量、函數(shù)、類以及其他的模塊(如果導(dǎo)入的話),而函數(shù)也有自己的本地變量。

      1.8,模塊導(dǎo)入的方式

      導(dǎo)入從本質(zhì)上講,就是在一個(gè)文件中載入另一個(gè)文件,并且能夠讀取那個(gè)文件的內(nèi)容。一個(gè)模塊內(nèi)的內(nèi)容通過(guò)這樣的方法其屬性(attributes)和方法(methods)能夠被外界使用。

      1.8.1,導(dǎo)入整個(gè)模塊

      - 使用方法一:在"import"后加上"模塊名稱"。

      import numpy

      通過(guò)這一句,計(jì)算機(jī)就在指定的位置找到了"numpy.py"文件,并準(zhǔn)備好該文件擁有的之后會(huì)用到的函數(shù)和屬性。在導(dǎo)入"numpy"后,我們就可以通過(guò)點(diǎn)符號(hào)"."連接模塊名稱和函數(shù)名,使用該模塊中的函數(shù)和屬性。

      numpy.sqrt(2)

      1.8.2,import搜索的路徑順序

      - 以上四個(gè)組件組合起來(lái)就變成了sys.path,其保存了模塊搜索路徑在機(jī)器上的實(shí)際配置,可以通過(guò)打印內(nèi)置的sys.path列表來(lái)查看這些路徑。

      - 搜索路徑1和3是系統(tǒng)自定義的,而2和4可以用于拓展路徑,從而加入自己的源代碼目錄。

      2,Python的內(nèi)置模塊

      2.1,Python內(nèi)置工具包

      在安裝Python解釋器后可以直接使用的工具包:

      - os,負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問(wèn)操作系統(tǒng)底層的接口。

      - sys,負(fù)責(zé)程序與Python解釋器的交互,提供了一系列的函數(shù)和變量,用于操控Python運(yùn)行時(shí)的環(huán)境。

      - time,是Python中處理時(shí)間的一個(gè)重要模塊,包含了許多的有關(guān)時(shí)間操作的方法。

      - random,Python隨機(jī)函數(shù)庫(kù)。

      - datetime,Python中可操作日期和時(shí)間的模塊。

      - ...

      2.2,Python os庫(kù)基本使用方法(1)

      常用的路徑操作函數(shù)如下:

      - os.getcwd():獲取當(dāng)前所在的路徑。

      - os.chdir(path):改變當(dāng)前工作目錄。

      - os.listdir():返回目錄下的所有文件。

      - os.walk():返回目錄下所有文件(包括子文件夾中的文件)。

      import os cwd=os.getcwd() print("當(dāng)前所在路徑為:",cwd) os.chdir("../") # ../指的是當(dāng)前目錄上一級(jí)父目錄,此語(yǔ)句表示改變當(dāng)前工作目錄至上一級(jí)目錄 print("當(dāng)前目錄下的文件有:",os.listdir(cwd))

      2.3,Python os庫(kù)基本使用方法(2)

      os.path子模塊:

      - os.path.join(path):按當(dāng)前系統(tǒng)所能識(shí)別的方式鏈接目錄名。

      - os.path.abspath(path):返回絕對(duì)路徑。

      - os.path.exists(path):文件存在則返回True,不存在返回False。

      - os.path.getsize(path):返回文件大小,如果文件不存在就返回錯(cuò)誤。

      import os os.path.join('home','username','notebooks') # 在Windows下等同于/home/username/notebooks print("text0.txt的絕對(duì)路徑為:",os.path.abspath("text0.txt")) print("text0.txt是否存在:",os.path.exists("text0.txt")) print("text0.txt的文件大小:",os.path.getsize("text0.txt"))

      2.4,Python os庫(kù)基本使用方法(3)

      - os.path.isfile(path):判斷路徑是否為文件,如果是文件就返回True,不是就返回False。

      - os.path.isdir(path):判斷路徑是否為文件夾,如果是文件夾就返回True,不是就返回False。

      import os print("text0.txt是否為文件:",os.path.isfile("text0.txt")) print("text0.txt是否為文件夾:",os.path.isdir("text0.txt"))

      2.5,Python sys庫(kù)基本使用方法(1)

      sys模塊主要是針對(duì)與Python解釋器相關(guān)的變量和方法,提供對(duì)解釋器使用或維護(hù)的一些變量的訪問(wèn),以及與解釋器強(qiáng)烈交互的函數(shù)。

      常用函數(shù)如下:

      - sys.exit([n]):此方法可以使當(dāng)前程序退出。

      import sys for i in range(100): print(i) if i==5: sys.exit(0)

      2.6,Python sys庫(kù)基本使用方法(2)

      - sys.path:獲取模塊搜索路徑

      - path是一個(gè)目錄列表,供Python從中查找模塊。在Python啟動(dòng)時(shí),sys.path根據(jù)內(nèi)建規(guī)則和Python的PATH變量進(jìn)行初始化。sys.path的第一個(gè)元素通常是個(gè)空字符串,表示當(dāng)前目錄。

      - sys.path本質(zhì)上是一個(gè)列表,可以進(jìn)行append,insert,pop,remove等各種列表相關(guān)的操作,但通常都進(jìn)行append操作,添加自己想要的查找路徑。

      2.7,Python sys庫(kù)基本使用方法(3)

      - sys.platform:獲取當(dāng)前系統(tǒng)平臺(tái)。

      - sys.argv:從程序外部向程序傳遞參數(shù),參數(shù)以列表的形式傳遞,第一個(gè)為當(dāng)前文件名。

      import sys sys.platform print(sys.argv[0])

      2.8,Python time庫(kù)(1)

      time庫(kù)用于獲取時(shí)間,包括日期和當(dāng)前時(shí)間點(diǎn)。常用的函數(shù)包括:

      - time.time():用于獲取當(dāng)前時(shí)間戳,還可以用于輸出某個(gè)代碼塊的運(yùn)行時(shí)間。

      import time time1=time.time() ######代碼塊###### for i in range(100000): pass ######代碼塊###### time2=time.time() print("時(shí)間戳1:",time1) # 時(shí)間戳1: 1636161110.4614594 print("時(shí)間戳2:",time2) # 時(shí)間戳2: 1636161110.46646 print("運(yùn)行總時(shí)長(zhǎng):",time2-time1) # 運(yùn)行總時(shí)長(zhǎng): 0.005000591278076172

      2.9,Python time庫(kù)(2)

      - time.localtime():將時(shí)間戳轉(zhuǎn)化為時(shí)間元組。

      import time time_now=time.time() localtime=time.localtime(time_now) print("本地時(shí)間為:",localtime) # 輸出結(jié)果為 # 本地時(shí)間為: time.struct_time(tm_year=2021, tm_mon=11, tm_mday=6, tm_hour=9, tm_min=16, tm_sec=49, tm_wday=5, tm_yday=310, tm_isdst=0)

      3.0,Python time庫(kù)(3)

      - time.asctime():獲取格式化的時(shí)間,通常用于將時(shí)間元組轉(zhuǎn)化為可讀性較強(qiáng)的格式。

      import time time_now=time.time() localtime=time.localtime(time_now) localtime2=time.asctime(localtime) print("本地時(shí)間為:",localtime2) # 本地時(shí)間為: Sat Nov 6 09:39:49 2021

      - 或者使用time.strftime(format,[,t]):接收時(shí)間元組,并返回以可讀字符串表示的當(dāng)?shù)貢r(shí)間,格式由參數(shù)format決定。

      import time print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) # 2021-11-06 10:00:24

      3.1,Python random庫(kù)(1)

      - random庫(kù)是Python里以一定規(guī)律產(chǎn)生隨機(jī)數(shù)的標(biāo)準(zhǔn)庫(kù)。

      - random隨機(jī)數(shù)生成庫(kù)的使用:

      random.random():生成0-1之間的隨機(jī)數(shù)。

      random.randint(m,n):返回m到n之間的隨機(jī)整數(shù),包含m和n。

      from random import * # 生成0-1之間的隨機(jī)數(shù),服從正態(tài)分布。 print("隨機(jī)選取0<=x<=1的隨機(jī)浮點(diǎn)數(shù):",random()) # 隨機(jī)選取0<=x<=1的隨機(jī)浮點(diǎn)數(shù): 0.09918964100146255 # 返回指定區(qū)間的隨機(jī)整數(shù) print("隨機(jī)選取-3<=x<10的隨機(jī)整數(shù):",randint(-3,10)) # 隨機(jī)選取-3M=x<10的隨機(jī)整數(shù): 1

      3.2,Python random庫(kù)(2)

      - random.randrange():返回指定區(qū)間的隨機(jī)數(shù),可指定步長(zhǎng)。

      注意:randint(start,end)相當(dāng)于randrange(start,end,1)

      - random.uniform():隨機(jī)選取指定范圍的隨機(jī)浮點(diǎn)數(shù)。

      from random import * # 返回指定區(qū)間的隨機(jī)整數(shù),可指定步長(zhǎng)r print("在[-3,1,5,9]里隨機(jī)挑一個(gè):",randrange(-3,10,4)) # 在[-3,1,5,9]里隨機(jī)挑一個(gè): 9 # 均勻而隨機(jī)選取指定范圍的隨機(jī)浮點(diǎn)數(shù),服從均勻發(fā)布 print("隨機(jī)選取-5<=x<5的隨機(jī)浮點(diǎn)數(shù):",uniform(-5,5)) # 隨機(jī)選取-5<=x<5的隨機(jī)浮點(diǎn)數(shù): 4.7063137283904215

      3.3,Python random庫(kù)(3)

      - random.sample():隨機(jī)選取指定數(shù)量的樣本。

      - random.shuffle():洗牌。即將列表中元素順序打亂。

      from random import sample, shuffle l = list(range(10)) # 隨機(jī)選取5個(gè)樣本 print("從0<=x<10中隨機(jī)選5個(gè)數(shù):",sample(l,5)) # 從0<=x<10中隨機(jī)選5個(gè)數(shù): [8, 3, 5, 6, 7] l = list(range(10)) print("打亂前:",l) # 打亂前: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] shuffle(l) # 洗牌,即將列表中元素順序打亂。 print("打亂后:",l) # 打亂后: [9, 8, 2, 6, 3, 1, 0, 7, 5, 4]

      3.4,Python datetime庫(kù)(1)

      - datetime是Python中關(guān)于日期時(shí)間操作模塊,內(nèi)置了諸多關(guān)于日期時(shí)間轉(zhuǎn)化和計(jì)算的方法。

      - datetime庫(kù)中的操作主要是對(duì)其中四個(gè)類的操作:

      datetime.date:日期類

      datetime.time:時(shí)間類

      datetime.datetime:時(shí)間日期類

      datetime.timedelta:時(shí)間計(jì)算類

      3.5,Python datetime庫(kù)(2)

      - datetime.date:

      today():獲取今天的日期。

      strftime(format):格式化為需要的時(shí)間格式。

      timple():將日期轉(zhuǎn)成struct_time格式。

      fromtimestamp(timestamp):將時(shí)間戳轉(zhuǎn)化為date對(duì)象。

      - datetime.time:

      datetime.time.(format):格式化輸出。

      3.6,Python datetime庫(kù)(3)

      - datetime.datetime:

      now():返回當(dāng)前日期時(shí)間對(duì)象。

      [Python][華為云Python編程創(chuàng)造營(yíng)][學(xué)習(xí)筆記](méi)[07_模塊和標(biāo)準(zhǔn)庫(kù)]

      ctime():返回日期時(shí)間字符串。

      date():返回當(dāng)前日期對(duì)象。

      time():返回時(shí)間對(duì)象。

      - datetime.timedelta:

      d1-d2:返回兩個(gè)日期之間的timedelta對(duì)象。

      days():返回兩個(gè)日期之間的天數(shù)。

      total_seconds():返回總秒數(shù)。

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:wps表格怎么提取數(shù)據(jù)(wps表格提取內(nèi)容)
      下一篇:輪胎制造業(yè)生產(chǎn)管理系統(tǒng)(輪胎店管理系統(tǒng))
      相關(guān)文章
      亚洲精品国产高清嫩草影院| 亚洲aⅴ无码专区在线观看春色| 天天综合亚洲色在线精品| 亚洲一线产品二线产品| 亚洲中文字幕无码一去台湾| 亚洲国产亚洲综合在线尤物| 亚洲欧洲日韩在线电影| 亚洲综合一区二区| 亚洲成av人片在线看片| 亚洲国产中文在线二区三区免| 亚洲国产理论片在线播放| 亚洲国产综合自在线另类| 亚洲国产日韩在线| 亚洲五月综合网色九月色| 亚洲精品伊人久久久久| 国产亚洲精aa在线看| 亚洲日韩精品国产3区| 亚洲av无码无线在线观看 | 亚洲精品国产精品乱码不卡√| 亚洲中文字幕成人在线| 亚洲成a人片在线观看国产| 亚洲av日韩片在线观看| 亚洲成年人啊啊aa在线观看| 国产亚洲蜜芽精品久久| 亚洲色一色噜一噜噜噜| 亚洲日本va在线视频观看| 亚洲国产另类久久久精品| 亚洲高清在线视频| 亚洲春色在线观看| 99热亚洲色精品国产88| 亚洲成a人片在线不卡一二三区| 亚洲?V乱码久久精品蜜桃| 国产亚洲成人在线播放va| 亚洲国产成人片在线观看| 亚洲一区影音先锋色资源| 亚洲啪啪免费视频| 亚洲av无码一区二区三区天堂 | 亚洲AV无码专区在线厂| 亚洲精品国产va在线观看蜜芽| 亚洲午夜福利717| 在线观看亚洲人成网站|