《 Python的模塊》優(yōu)質(zhì)課件_第1頁(yè)
《 Python的模塊》優(yōu)質(zhì)課件_第2頁(yè)
《 Python的模塊》優(yōu)質(zhì)課件_第3頁(yè)
《 Python的模塊》優(yōu)質(zhì)課件_第4頁(yè)
《 Python的模塊》優(yōu)質(zhì)課件_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第13課Python的模塊新知導(dǎo)入

今天我們學(xué)習(xí)利用Python的模塊解決一些實(shí)際問(wèn)題,那么什么是Python的模塊?主要模塊有哪些?怎樣利用模塊來(lái)解決問(wèn)題呢?帶著疑問(wèn)我們就一塊來(lái)學(xué)習(xí)吧!新知講解使用函數(shù)可將代碼塊與主程序分離,使程序更加容易理解。還可將函數(shù)存儲(chǔ)在稱為模塊的獨(dú)立文件中,既可隱藏程序代碼細(xì)節(jié),又可在不同程序中重復(fù)使用函數(shù)。

模塊(Module)是用來(lái)把函數(shù)、變量,以及其他東西組織成更大的、更強(qiáng)的程序。Python提供了大量模塊,有些模塊內(nèi)置在Python之中,如用于數(shù)學(xué)計(jì)算的模塊math;

有些模塊需要單獨(dú)下載,如用于科學(xué)計(jì)算的模塊numpy。一、模塊概念模塊就是一個(gè)以.py結(jié)尾的獨(dú)立的程序代碼的文件,實(shí)現(xiàn)了特定的功能。在Python中,模塊分為以下幾種:1、系統(tǒng)內(nèi)置模塊:如math、random、time等。2、自定義模塊:自定義模塊是用戶編寫的模塊,對(duì)某段邏輯或某些函數(shù)進(jìn)行封裝后,供其他程序調(diào)用。3、第三方的開(kāi)源模塊:如numpy、matplotlib等,可以通過(guò)pipinstall進(jìn)行安裝后調(diào)用。日積月累在自定義模塊時(shí),有幾點(diǎn)要注意:(1)為了使IDLE能找到我們自定義模塊,該模塊要和調(diào)用的程序在同一目錄下,否則在導(dǎo)入模塊時(shí)會(huì)提示找不到模塊的錯(cuò)誤。(2)模塊名要遵循Python變量命名規(guī)范,不要使用中文、特殊字符等。(3)自定義的模塊名不要和系統(tǒng)內(nèi)置的模塊名相同,可以先在IDLE交互環(huán)境里先用“importmodel_name”命令檢查,若成功則說(shuō)明系統(tǒng)已存在此模塊,然后考慮更改自定義的模塊名。二、模塊導(dǎo)入在Python中,模塊中的函數(shù)不能直接使用,需要先導(dǎo)入。模塊的導(dǎo)入主要有以下兩種方法:導(dǎo)入整個(gè)模塊文件,使用模塊中的函數(shù),格式如下:Import<模塊>[as<別名>]<模塊>.<函數(shù)名>()

這種導(dǎo)入模塊的方法,相當(dāng)于給導(dǎo)入的模塊名稱重新起一個(gè)別名,便于記憶,很方便地在程序中調(diào)用。from<模塊>import<函數(shù)名><函數(shù)名>()導(dǎo)入模塊中的指定函數(shù),直接使用該函數(shù),格式如下:函數(shù)名如果有多個(gè),可用逗號(hào)“,”隔開(kāi)。函數(shù)名可用通配符“*”導(dǎo)出所有的函數(shù)。

這種方法要慎用,因?yàn)閷?dǎo)出的函數(shù)名稱容易和其它函數(shù)名稱沖突,失去了模塊命名空間的優(yōu)勢(shì)。例如,計(jì)算2的平方根,先導(dǎo)人模塊,再使用函數(shù),如圖所示。導(dǎo)入整個(gè)模塊文件又如計(jì)算2的3次冪,導(dǎo)入指定函數(shù)后,就可以直接使用該函數(shù),如圖所示。只導(dǎo)入模塊中指定函數(shù)使用dir()函數(shù)查看math模塊內(nèi)部的函數(shù)名模塊導(dǎo)入后,可以使用內(nèi)置函數(shù)dir()查看模塊內(nèi)部的函數(shù)名(以及類和常量標(biāo)識(shí)符名稱等),如圖所示。日積月累三、常用內(nèi)置模塊math和randommath模塊是Python提供的內(nèi)置數(shù)學(xué)類模塊,下表列出math模塊中的2個(gè)常量和2個(gè)函數(shù)。1.math模塊名稱數(shù)學(xué)表示含義圓周率piππ的近似值,15位小數(shù)自然常數(shù)eee的近似值,15位小數(shù)pow(x,y)xy計(jì)算x的y次冪sqrt(x)?√x計(jì)算x的平方根random模塊提供了不同類型的隨機(jī)數(shù)函數(shù),表13-2列出了常用的4個(gè)隨機(jī)數(shù)生成函數(shù)。2.random模塊名稱含義seed(x)給隨機(jī)數(shù)一個(gè)種子值,默認(rèn)隨機(jī)種子是系統(tǒng)時(shí)鐘random()隨機(jī)生成一個(gè)0至1(不含1)之間的實(shí)數(shù)uniform(a,b)隨機(jī)生成一個(gè)a至b之間的實(shí)數(shù)randint(a,b)隨機(jī)生成一個(gè)a至b之間的整數(shù)采用蒙特卡洛方法計(jì)算π的值。圓周率π是一個(gè)無(wú)理數(shù),沒(méi)有任何一個(gè)公式能夠精確計(jì)算π值,π的計(jì)算只能采用近似算法。蒙特卡洛方法(MonteCarlomethod)也稱統(tǒng)計(jì)模擬方法,是指使用隨機(jī)數(shù)來(lái)解決計(jì)算問(wèn)題的方法。四、Python模塊的應(yīng)用實(shí)例1.問(wèn)題分析

首先構(gòu)造一個(gè)單位正方形和1/4圓,如圖所示。隨機(jī)向單位正方形內(nèi)拋灑大量“點(diǎn)”,而每個(gè)點(diǎn)可能在圓內(nèi)或者在圓外。當(dāng)隨機(jī)點(diǎn)數(shù)量達(dá)到一定程度,在1/4圓內(nèi)的點(diǎn)將構(gòu)成其面積(S圓=π/4),全部點(diǎn)將構(gòu)成正方形面積(S正=1)。此時(shí),拋點(diǎn)落在圓內(nèi)的概率(p),就是上述面積之比(P=S圓/S正=π/4)得到π=4p。隨機(jī)點(diǎn)的數(shù)量越大,得到的一值越精確。根據(jù)上述分析,單位正方形內(nèi)拋點(diǎn)的橫坐標(biāo)和縱坐標(biāo)可通過(guò)隨機(jī)函數(shù)產(chǎn)生。通過(guò)計(jì)算拋點(diǎn)到原點(diǎn)的距離(d)來(lái)判斷該點(diǎn)是否落在圓內(nèi)。若拋點(diǎn)落在圓內(nèi),則計(jì)數(shù)器(point)加1。2.設(shè)計(jì)算法隨機(jī)向單位正方形內(nèi)拋灑大量點(diǎn)(num),可通過(guò)循環(huán)實(shí)現(xiàn)。拋點(diǎn)落在圓內(nèi)的概率為p=point/num其算法用流程圖表示,如圖所示。根據(jù)設(shè)計(jì)的算法,其程序代碼如下所示。3.編寫程序Importrandomimportmathnum=int(input("請(qǐng)輸入投點(diǎn)數(shù):"))point=0Foriinrange(1,num+1):xy=random.random(),random.random()dist=math.sqrt(x**2+y**2)if_dist<=1.0:point=point+1Pi=4*(point/num)print("Pi的值是:",Pi)程序中用到了random模塊的random()函數(shù)和math模塊的sqrt()函數(shù)。

按“F5”鍵,分別輸人20000和20000000,運(yùn)行結(jié)果如圖所示。4.調(diào)試運(yùn)行可見(jiàn),投入的點(diǎn)越多,計(jì)算的一值越精確。immportp=[1,2,3,4,5,6]n=3print()然后,新建建“列表元素的循環(huán)左移”文lst_move.py,程序代碼如下請(qǐng)?zhí)顚懣杖钡拇a。隨堂練習(xí)1.程序填空。首先,自定義函數(shù)left(),并保存到模塊文件move.py,如圖所示。課堂小結(jié)總結(jié)本節(jié)課所學(xué)內(nèi)容板書設(shè)計(jì)一、模塊概念二、模塊導(dǎo)入

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論