python程序的控制結(jié)構(gòu)_第1頁(yè)
python程序的控制結(jié)構(gòu)_第2頁(yè)
python程序的控制結(jié)構(gòu)_第3頁(yè)
python程序的控制結(jié)構(gòu)_第4頁(yè)
python程序的控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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)介

Python語(yǔ)言程序設(shè)計(jì)1精選ppt第4章

程序的控制結(jié)構(gòu)2精選ppt程序的根本結(jié)構(gòu)3精選ppt程序的流程圖程序流程圖用一系列圖形、流程線和文字說(shuō)明描述程序的根本操作和控制流程,它是程序分析和過(guò)程描述的最根本方式。流程圖的根本元素包括7種4精選ppt程序的流程圖程序流程圖例如:由連接點(diǎn)A連接的一個(gè)程序5精選ppt程序的根本結(jié)構(gòu)順序結(jié)構(gòu)是程序的根底,但單一的順序結(jié)構(gòu)不可能解決所有問(wèn)題。程序由三種根本結(jié)構(gòu)組成:順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)這些根本結(jié)構(gòu)都有一個(gè)入口和一個(gè)出口。任何程序都由這三種根本結(jié)構(gòu)組合而成6精選ppt程序的根本結(jié)構(gòu)順序結(jié)構(gòu)是程序按照線性順序依次執(zhí)行的一種運(yùn)行方式,其中語(yǔ)句塊1S1和語(yǔ)句塊S2表示一個(gè)或一組順序執(zhí)行的語(yǔ)句7精選ppt程序的根本結(jié)構(gòu)分支結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運(yùn)行方式,包括單分支結(jié)構(gòu)和二分支結(jié)構(gòu)。由二分支結(jié)構(gòu)會(huì)組合形成多分支結(jié)構(gòu)8精選ppt程序的根本結(jié)構(gòu)循環(huán)結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果向后反復(fù)執(zhí)行的一種運(yùn)行方式,根據(jù)循環(huán)體觸發(fā)條件不同,包括條件循環(huán)和遍歷循環(huán)結(jié)構(gòu)9精選ppt程序的根本結(jié)構(gòu)實(shí)例對(duì)于一個(gè)計(jì)算問(wèn)題,可以用IPO描述、流程圖描述或者直接以Python代碼方式描述微實(shí)例4.1:圓面積和周長(zhǎng)的計(jì)算。輸入:圓半徑R處理:圓面積:S=π*R*R圓周長(zhǎng):L=2*π*R輸出:圓面積S、周長(zhǎng)L

1234R=eval(input("請(qǐng)輸入圓半徑:"))S=3.1415*R*RL=2*3.1415*Rprint("面積和周長(zhǎng):",S,L)問(wèn)題IPO描述

Python代碼描述

10精選ppt程序的根本結(jié)構(gòu)實(shí)例微實(shí)例4.2:實(shí)數(shù)絕對(duì)值的計(jì)算。1234R=eval(input("輸入實(shí)數(shù):"))if(R<0):R=-Rprint("絕對(duì)值",R)(a)問(wèn)題IPO描述

(b)流程圖描述

(c)Python代碼描述

11精選ppt程序的根本結(jié)構(gòu)實(shí)例微實(shí)例4.3:整數(shù)累加。輸入:正整數(shù)R處理:S=1+2+3+…+R輸出:輸出S123456R=eval(input("請(qǐng)輸入正整數(shù):"))i,S=0,0while(i<=R):S=S+ii=i+1print("累加求和",S)(a)問(wèn)題IPO描述

(b)流程圖描述

(c)Python代碼描述

12精選ppt程序的根本結(jié)構(gòu)實(shí)例IPO描述主要用于區(qū)分程序的輸入輸出關(guān)系,重點(diǎn)在于結(jié)構(gòu)劃分,算法主要采用自然語(yǔ)言描述流程圖描述側(cè)重于描述算法的具體流程關(guān)系,流程圖的結(jié)構(gòu)化關(guān)系相比自然語(yǔ)言描述更進(jìn)一步,有助于闡述算法的具體操作過(guò)程Python代碼描述是最終的程序產(chǎn)出,最為細(xì)致。13精選ppt程序的分支結(jié)構(gòu)14精選ppt單分支結(jié)構(gòu):if語(yǔ)句Python中if語(yǔ)句的語(yǔ)法格式如下:if<條件>:語(yǔ)句塊語(yǔ)句塊是if條件滿足后執(zhí)行的一個(gè)或多個(gè)語(yǔ)句序列語(yǔ)句塊中語(yǔ)句通過(guò)與if所在行形成縮進(jìn)表達(dá)包含關(guān)系if語(yǔ)句首先評(píng)估<條件>的結(jié)果值,如果結(jié)果為T(mén)rue,那么執(zhí)行語(yǔ)句塊里的語(yǔ)句序列,然后控制轉(zhuǎn)向程序的下一條語(yǔ)句。如果結(jié)果為False,語(yǔ)句塊里的語(yǔ)句會(huì)被跳過(guò)。15精選ppt布爾類(lèi)型(bool)TrueFlasebool函數(shù):bool(2)>>>A=1>2>>>type(A)數(shù)字非零為T(mén)rue字符串為T(mén)rue,空字符串為False

16精選ppt關(guān)系運(yùn)算符if語(yǔ)中<條件>局部可以使用任何能夠產(chǎn)生True或False的語(yǔ)句形成判斷條件最常見(jiàn)的方式是采用關(guān)系操作符Python語(yǔ)言共有6個(gè)關(guān)系操作符操作符數(shù)學(xué)符號(hào)操作符含義<

<

小于<=≤小于等于>=≥大于等于>

>

大于===等于!=不等于17精選ppt邏輯操作符(notandor)

優(yōu)先級(jí)是not>and>or邏輯操作符and和or也稱(chēng)作短路操作符〔short-circuitlogic〕:它們的參數(shù)從左向右解析,一旦結(jié)果可以確定就停止。例如,如果A和C為真而B(niǎo)為假,AandBandC不會(huì)解析C

3and4,4and33or4(3),4or3(4)18精選ppt單分支結(jié)構(gòu):if語(yǔ)句if語(yǔ)句的控制流程圖

if語(yǔ)句中語(yǔ)句塊執(zhí)行與否依賴(lài)于條件判斷。但無(wú)論什么情況,控制都會(huì)轉(zhuǎn)到if語(yǔ)句后與該語(yǔ)句同級(jí)別的下一條語(yǔ)句19精選ppt單分支結(jié)構(gòu):if語(yǔ)句微實(shí)例4.4:PM2.5空氣質(zhì)量提醒〔1〕輸入:接收外部輸入PM2.5值處理:ifPM2.5值>=75,打印空氣污染警告if35<=PM2.5值<75,打印空氣污染警告ifPM2.5值<35,打印空氣質(zhì)量?jī)?yōu),建議戶(hù)外運(yùn)動(dòng)輸出:打印空氣質(zhì)量提醒

微實(shí)例4.4m4.4PM25Warning.py

1234567PM=eval(input("請(qǐng)輸入PM2.5數(shù)值:"))if0<=PM<35:print("空氣優(yōu)質(zhì),快去戶(hù)外運(yùn)動(dòng)!")if35<=PM<75:print("空氣良好,適度戶(hù)外活動(dòng)!")if75<=PM:print("空氣污染,請(qǐng)小心!")

20精選ppt二分支結(jié)構(gòu):if-else語(yǔ)句Python中if-else語(yǔ)句用來(lái)形成二分支結(jié)構(gòu),語(yǔ)法格式如下:if<條件>:<語(yǔ)句塊1>else:<語(yǔ)句塊2><語(yǔ)句塊1>是在if條件滿足后執(zhí)行的一個(gè)或多個(gè)語(yǔ)句序列<語(yǔ)句塊2>是if條件不滿足后執(zhí)行的語(yǔ)句序列二分支語(yǔ)句用于區(qū)分<條件>的兩種可能True或者False,分別形成執(zhí)行路徑21精選ppt二分支結(jié)構(gòu):if-else語(yǔ)句微實(shí)例4.5:PM2.5空氣質(zhì)量提醒〔2〕微實(shí)例4.5m4.5PM25Warning.py

12345PM=eval(input("請(qǐng)輸入PM2.5數(shù)值:"))ifPM>=75:print("空氣存在污染,請(qǐng)小心!")else:

print("空氣沒(méi)有污染,可以開(kāi)展戶(hù)外運(yùn)動(dòng)!")

22精選ppt二分支結(jié)構(gòu):if-else語(yǔ)句二分支結(jié)構(gòu)還有一種更簡(jiǎn)潔的表達(dá)方式,適合通過(guò)判斷返回特定值,語(yǔ)法格式如下:<表達(dá)式1>if<條件>else<表達(dá)式2>

12PM=eval(input("請(qǐng)輸入PM2.5數(shù)值:"))print("空氣{}污染!".format("存在"ifPM>=75else"沒(méi)有"))

23精選ppt二分支結(jié)構(gòu):if-else語(yǔ)句>>>count=2>>>countifcount!=0else"不存在"2>>>count=0>>>countifcount!=0else"不存在""不存在"if…else的緊湊結(jié)構(gòu)非常適合對(duì)特殊值處理的情況,如下:24精選ppt多分支結(jié)構(gòu):if-elif-else語(yǔ)句Python的if-elif-else描述多分支結(jié)構(gòu),語(yǔ)句格式如下:if<條件1>:<語(yǔ)句塊1>elif<條件2>:<語(yǔ)句塊2>...else:<語(yǔ)句塊N>25精選ppt多分支結(jié)構(gòu):if-elif-else語(yǔ)句多分支結(jié)構(gòu)是二分支結(jié)構(gòu)的擴(kuò)展,這種形式通常用于設(shè)置同一個(gè)判斷條件的多條執(zhí)行路徑。Python依次評(píng)估尋找第一個(gè)結(jié)果為T(mén)rue的條件,執(zhí)行該條件下的語(yǔ)句塊,同時(shí)結(jié)束后跳過(guò)整個(gè)if-elif-else結(jié)構(gòu),執(zhí)行后面的語(yǔ)句。如果沒(méi)有任何條件成立,else下面的語(yǔ)句塊被執(zhí)行。else子句是可選的26精選ppt多分支結(jié)構(gòu):if-elif-else語(yǔ)句微實(shí)例4.4通過(guò)多條獨(dú)立的if語(yǔ)句對(duì)同一個(gè)變量PM進(jìn)行判斷,這種情況更適合多分支結(jié)構(gòu),改造后的代碼如下

1234567PM=eval(input("請(qǐng)輸入PM2.5數(shù)值:"))if0<=PM<35:print("空氣優(yōu)質(zhì),快去戶(hù)外運(yùn)動(dòng)!")elif35<=PM<75:print("空氣良好,適度戶(hù)外活動(dòng)!")else:print("空氣污染,請(qǐng)小心!")

27精選ppt身體質(zhì)量指數(shù)BMIBMI的定義如下:BMI=體重〔kg〕÷身高2〔m2〕例如,一個(gè)人身高1.75米、體重75公斤,他的BMI值為24.4928精選ppt身體質(zhì)量指數(shù)BMI分類(lèi)國(guó)際BMI值(kg/m2)國(guó)內(nèi)BMI值(kg/m2)偏瘦<18.5<18.5正常18.5~2518.5~24偏胖25~3024~28肥胖>=30>=28編寫(xiě)一個(gè)根據(jù)體重和身高計(jì)算BMI值的程序,并同時(shí)輸出國(guó)際和國(guó)內(nèi)的BMI指標(biāo)建議值29精選ppt身體質(zhì)量指數(shù)BMI實(shí)例代碼5.1e5.1CalBMI.py

12

345678910111213141516171819202122#e5.1CalBMI.pyheight,weight=eval(input("請(qǐng)輸入身高(米)和體重\(公斤)[逗號(hào)隔開(kāi)]:"))bmi=weight/pow(height,2)print("BMI數(shù)值為:{:.2f}".format(bmi))wto,dom="",""ifbmi<18.5:#WTO標(biāo)準(zhǔn)wto="偏瘦"elifbmi<25:#18.5<=bmi<25wto="正常"elifbmi<30:#25<=bmi<30wto="偏胖"else:wto="肥胖"ifbmi<18.5:#我國(guó)衛(wèi)生部標(biāo)準(zhǔn)dom="偏瘦"elifbmi<24:#18.5<=bmi<24dom="正常"elifbmi<28:#24<=bmi<28dom="偏胖"else:dom="肥胖"print("BMI指標(biāo)為:國(guó)際'{0}',國(guó)內(nèi)'{1}'".format(wto,dom))

>>>

請(qǐng)輸入身高(米)和體重(公斤)[逗號(hào)隔開(kāi)]:1.75,75BMI數(shù)值為:24.49BMI指標(biāo)為:國(guó)際'正常',國(guó)內(nèi)'偏胖'30精選ppt實(shí)例代碼5.2e5.2CalBMI.py

12

3456789101112131415161718#e5.2CalBMI.pyheight,weight=eval(input("請(qǐng)輸入身高(米)和體重\(公斤)[逗號(hào)隔開(kāi)]:"))bmi=weight/pow(height,2)print("BMI數(shù)值為:{:.2f}".format(bmi))wto,dom="",""ifbmi<18.5:wto,dom="偏瘦","偏瘦"elif18.5<=bmi<24:wto,dom="正常","正常"elif24<=bmi<25:wto,dom="正常","偏胖"elif25<=bmi<28:wto,dom="偏胖","偏胖"elif28<=bmi<30:wto,dom="偏胖","肥胖"else:wto,dom="肥胖","肥胖"print("BMI指標(biāo)為:國(guó)際'{0}',國(guó)內(nèi)'{1}'".format(wto,dom))

31精選ppt程序的循環(huán)結(jié)構(gòu)32精選ppt遍歷循環(huán):for語(yǔ)句遍歷循環(huán):根據(jù)循環(huán)執(zhí)行次數(shù)確實(shí)定性,循環(huán)可以分為確定次數(shù)循環(huán)和非確定次數(shù)循環(huán)。確定次數(shù)循環(huán)指循環(huán)體對(duì)循環(huán)次數(shù)有明確的定義循環(huán)次數(shù)采用遍歷結(jié)構(gòu)中元素個(gè)數(shù)來(lái)表達(dá)Python通過(guò)保存字for實(shí)現(xiàn)“遍歷循環(huán)〞:for<循環(huán)變量>in<遍歷結(jié)構(gòu)>:<語(yǔ)句塊>

33精選ppt遍歷循環(huán):for語(yǔ)句遍歷結(jié)構(gòu)可以是字符串、文件、組合數(shù)據(jù)類(lèi)型或range()函數(shù):循環(huán)N次foriinrange(N):<語(yǔ)句塊>遍歷文件fi的每一行forlineinfi:<語(yǔ)句塊>遍歷字符串sforcins:<語(yǔ)句塊>遍歷列表lsforiteminls:<語(yǔ)句塊>遍歷循環(huán)還有一種擴(kuò)展模式,使用方法如下:for<循環(huán)變量>in<遍歷結(jié)構(gòu)>:<語(yǔ)句塊1>else:<語(yǔ)句塊2>34精選ppt遍歷循環(huán):for語(yǔ)句當(dāng)for循環(huán)正常執(zhí)行之后,程序會(huì)繼續(xù)執(zhí)行else語(yǔ)句中內(nèi)容。else語(yǔ)句只在循環(huán)正常執(zhí)行之后才執(zhí)行并結(jié)束,因此,可以在<語(yǔ)句塊2>中放置判斷循環(huán)執(zhí)行情況的語(yǔ)句。

12345forsin"BIT":print("循環(huán)進(jìn)行中:"+s)else:s="循環(huán)正常結(jié)束"print(s)

>>>

循環(huán)進(jìn)行中:B循環(huán)進(jìn)行中:I循環(huán)進(jìn)行中:T循環(huán)正常結(jié)束35精選ppt無(wú)限循環(huán):while語(yǔ)句無(wú)限循環(huán):無(wú)限循環(huán)一直保持循環(huán)操作直到特定循環(huán)條件不被滿足才結(jié)束,不需要提前知道確定循環(huán)次數(shù)。Python通過(guò)保存字while實(shí)現(xiàn)無(wú)限循環(huán),使用方法如下:while<條件>:<語(yǔ)句塊>語(yǔ)句塊36精選ppt無(wú)限循環(huán):while語(yǔ)句無(wú)限循環(huán)也有一種使用保存字else的擴(kuò)展模式:while<條件>:<語(yǔ)句塊1>else:<語(yǔ)句塊2>

1234567s,idx="BIT",0whileidx<len(s):print("循環(huán)進(jìn)行中:"+s[idx])idx+=1else:s="循環(huán)正常結(jié)束"print(s)

>>>

循環(huán)進(jìn)行中:B循環(huán)進(jìn)行中:I循環(huán)進(jìn)行中:T循環(huán)正常結(jié)束37精選ppt循環(huán)保存字:break和continue循環(huán)結(jié)構(gòu)有兩個(gè)輔助保存字:break和continue,它們用來(lái)輔助控制循環(huán)執(zhí)行break用來(lái)跳出最內(nèi)層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)后代嗎繼續(xù)續(xù)執(zhí)行

12345forsin"BIT":foriinrange(10):print(s,end="")ifs=="I":break

>>>

BBBBBBBBBBITTTTTTTTTT其中,break語(yǔ)句跳出了最內(nèi)層for循環(huán),但仍然繼續(xù)執(zhí)行外層循環(huán)。每個(gè)break語(yǔ)句只有能力跳出當(dāng)前層次循環(huán)38精選ppt循環(huán)保存字:break和continuecontinue用來(lái)結(jié)束當(dāng)前當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,但不跳出當(dāng)前循環(huán)。對(duì)于while循環(huán),繼續(xù)求解循環(huán)條件。而對(duì)于for循環(huán),程序流程接著遍歷循環(huán)列表比照continue和break語(yǔ)句,如下

1234forsin"PYTHON":ifs=="T":continueprint(s,end="")

1234forsin"PYTHON":ifs=="T":breakprint(s,end="")

>>>

PYHON>>>

PY39精選ppt循環(huán)保存字:break和continuecontinue語(yǔ)句和break語(yǔ)句的區(qū)別是:continue語(yǔ)句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)的執(zhí)行。break語(yǔ)句那么是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立

1234forsin"PYTHON":ifs=="T":continueprint(s,end="")

1234forsin"PYTHON":ifs=="T":breakprint(s,end="")

>>>

PYHON>>>

PY40精選ppt循環(huán)保存字:break和continuefor循環(huán)和while循環(huán)中都存在一個(gè)else擴(kuò)展用法。else中的語(yǔ)句塊只在一種條件下執(zhí)行,即for循環(huán)正常遍歷了所有內(nèi)容沒(méi)有因?yàn)閎reak或return而退出。continue保存字對(duì)else沒(méi)有影響??聪旅鎯蓚€(gè)例子

123456forsin"PYTHON":ifs=="T":continueprint(s,end="")else:print("正常退出")

123456forsin"PYTHON":ifs=="T":breakprint(s,end="")else:print("正常退出")

>>>

PYHON正常退出>>>

PY41精選pptrandom庫(kù)的使用42精選pptrandom庫(kù)概述隨機(jī)數(shù)在計(jì)算機(jī)應(yīng)用中十分常見(jiàn),Python內(nèi)置的random庫(kù)主要用于產(chǎn)生各種分布的偽隨機(jī)數(shù)序列。random庫(kù)采用梅森旋轉(zhuǎn)算法〔Mersennetwister〕生成偽隨機(jī)數(shù)序列,可用于除隨機(jī)性要求更高的加解密算法外的大多數(shù)工程應(yīng)用。使用random庫(kù)主要目的是生成隨機(jī)數(shù),因此,讀者只需要查閱該庫(kù)的隨機(jī)數(shù)生成函數(shù),找到符合使用場(chǎng)景的函數(shù)使用即可。這個(gè)庫(kù)提供了不同類(lèi)型的隨機(jī)數(shù)函數(shù),所有函數(shù)都是基于最根本的random.random()函數(shù)擴(kuò)展而來(lái)。43精選pptrandom庫(kù)解析函數(shù)描述seed(a=None)初始化隨機(jī)數(shù)種子,默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間random()生成一個(gè)[0.0,1.0)之間的隨機(jī)小數(shù)randint(a,b)生成一個(gè)[a,b]之間的整數(shù)getrandbits(k)生成一個(gè)k比特長(zhǎng)度的隨機(jī)整數(shù)randrange(start,stop[,step])生成一個(gè)[start,stop)之間以step為步數(shù)的隨機(jī)整數(shù)uniform(a,b)生成一個(gè)[a,b]之間的隨機(jī)小數(shù)choice(seq)從序列類(lèi)型(例如:列表)中隨機(jī)返回一個(gè)元素shuffle(seq)將序列類(lèi)型中元素隨機(jī)排列,返回打亂后的序列sample(pop,k)從pop類(lèi)型中隨機(jī)選取k個(gè)元素,以列表類(lèi)型返回44精選pptrandom庫(kù)解析對(duì)random庫(kù)的引用方法與math庫(kù)一樣,采用下面兩種方式實(shí)現(xiàn):importrandom或fromrandomimport*>>>fromrandomimport*>>>random()0.2922089114412476>>>uniform(1,10)1.5913082783598524>>>uniform(1,20)7>>>randrange(0,100,4)#從0開(kāi)始到100以4遞增的元素中隨機(jī)返回96>>>choice(range(100))97>>>ls=list(range(10))>>>print(ls)[0,1,2,3,4,5,6,7,8,9]>>>shuffle(ls)>>>print(ls)[5,8,4,7,6,9,3,0,2,10,1,2,3,4,5,6,7,8,9]45精選pptrandom庫(kù)解析生成隨機(jī)數(shù)之前可以通過(guò)seed()函數(shù)指定隨機(jī)數(shù)種子,隨機(jī)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同。這種情況便于測(cè)試和同步數(shù)據(jù)>>>seed(125)#隨機(jī)種子賦值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'5.10.3'>>>seed(125)#再次給隨機(jī)種子賦值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'46精選pptπ的計(jì)算47精選pptπ的計(jì)算

π〔圓周率〕是一個(gè)無(wú)理數(shù),即無(wú)限不循環(huán)小數(shù)。精確求解圓周率π是幾何學(xué)、物理學(xué)和很多工程學(xué)科的關(guān)鍵。對(duì)π的精確求解曾經(jīng)是數(shù)學(xué)歷史上一直難以解決的問(wèn)題之一,因?yàn)棣袩o(wú)法用任何精確公式表示,在電子計(jì)算機(jī)出現(xiàn)以前,π只能通過(guò)一些近似公式的求解得到,直到1948年,人類(lèi)才以人工計(jì)算方式得到π的808位精確小數(shù)。

48精選pptπ的計(jì)算

隨著計(jì)算機(jī)的出現(xiàn),數(shù)學(xué)家找到了另類(lèi)求解π的另類(lèi)方法:蒙特卡羅〔MonteCarlo〕方法,又稱(chēng)隨機(jī)抽樣或統(tǒng)計(jì)試驗(yàn)方法。當(dāng)所要求解的問(wèn)題是某種事件出現(xiàn)的概率,或者是某個(gè)隨機(jī)變量的期望值時(shí),它們可以通過(guò)某種“試驗(yàn)〞的方法,得到這種事件出現(xiàn)的頻率,或者這個(gè)隨機(jī)變數(shù)的平均值,并用它們作為問(wèn)題的解。這就是蒙特卡羅方法的根本思想。

49精選pptπ的計(jì)算

應(yīng)用蒙特卡羅方法求解π的根本步驟如下:隨機(jī)向單位正方形和圓結(jié)構(gòu),拋灑大量“飛鏢〞點(diǎn)計(jì)算每個(gè)點(diǎn)到圓心的距離從而判斷該點(diǎn)在圓內(nèi)或者圓外用圓內(nèi)的點(diǎn)數(shù)除以總點(diǎn)數(shù)就是π/4值。隨機(jī)點(diǎn)數(shù)量越大,越充分覆蓋整個(gè)圖形,計(jì)算得到的π值越精確。實(shí)際上,這個(gè)方法的思想是利用離散點(diǎn)值表示圖形的面積,通過(guò)面積比例來(lái)求解π值。50精選pptπ的計(jì)算

計(jì)算π使用的正方形和圓結(jié)構(gòu)計(jì)算π使用的1/4區(qū)域和拋點(diǎn)過(guò)程51精選pptπ的計(jì)算

實(shí)例代碼6.1e6.1CalPi.py

123456789101112131415#e6.1CalPi.pyfromrandomimportrandomfrommathimportsqrtfromtimeimportclockDARTS=10000hits=0.0clock()foriinrange(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1pi=4*(hits/DARTS)print("Pi值是{}.".format(pi))print("運(yùn)行時(shí)間是:{:5.5}s".format(clock()))

>>>

Pi值是3.144.運(yùn)行時(shí)間是:0.016477s52精選pptπ的計(jì)算

DARTSπ運(yùn)行時(shí)間2103.1093750.011s2113.1386710.012s2123.1503900.014s2133.1435540.018s2143.1413570.030s2153.1478270.049s2163.1419670.116s2183.1445770.363s2203255s2253.141697883640.13s不同拋點(diǎn)數(shù)產(chǎn)生的精度和運(yùn)行時(shí)間53精選ppt異常處理機(jī)制54精選ppt異常處理:try-except語(yǔ)句

12num=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))print(num**2)

觀察下面這段小程序:當(dāng)用戶(hù)輸入的不是數(shù)字呢? >>>

請(qǐng)輸入一個(gè)整數(shù):10010000>>>

請(qǐng)輸入一個(gè)整數(shù):NOTraceback(mostrecentcalllast):File"D:/PythonPL/echoInt.py",line1,in<module>num=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))File"<string>",line1,in<module>NameError:name'No'isnotdefined55精選ppt異常處理:try-except語(yǔ)句(接管錯(cuò)誤)Python解釋器返回了異常信息,同時(shí)程序退出56精選ppt異常處理:try-except語(yǔ)句Python異常信息中最重要的局部是異常類(lèi)型,它說(shuō)明了發(fā)生異常的原因,也是程序處理異常的依據(jù)。Python使用try-except語(yǔ)句實(shí)現(xiàn)異常處理,根本的語(yǔ)法格式如下:try: <語(yǔ)句塊1>except<異常類(lèi)型>: <語(yǔ)句塊2>57精選ppt異常處理:try-except語(yǔ)句

12try:num=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))print(num**2)except:print("輸入錯(cuò)誤,請(qǐng)輸入一個(gè)整數(shù)!")

該程序執(zhí)行

溫馨提示

  • 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)論