Python第二次課課件_第1頁
Python第二次課課件_第2頁
Python第二次課課件_第3頁
Python第二次課課件_第4頁
Python第二次課課件_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2008.05程序設(shè)計基礎(chǔ)(Python語言)主講:朱立華2024/1/261精選2021版課件2008.05第二講:3章,7、8部分第3章數(shù)字類型第7章分支結(jié)構(gòu)第8章循環(huán)結(jié)構(gòu)2024/1/262精選2021版課件3本次課主要內(nèi)容主要內(nèi)容4種數(shù)字類型的概念和使用一各類型數(shù)字在計算機(jī)中的表示方法二Python數(shù)學(xué)庫和隨機(jī)庫的使用三循環(huán)結(jié)構(gòu)簡介五分支結(jié)構(gòu)簡介四32008.05第3章:數(shù)字類型2024/1/264精選2021版課件數(shù)字類型當(dāng)用戶向計算機(jī)輸入123,計算機(jī)需要明確的知道這個輸入是可以進(jìn)行數(shù)學(xué)計算的數(shù)字123,還是類似人名的字符串“123”,這兩者在計算機(jī)內(nèi)部采用不一樣的存儲方式。這個需求產(chǎn)生了“數(shù)據(jù)類型”的概念數(shù)據(jù)類型表示信息在計算機(jī)中的不同存儲方式,進(jìn)而決定了處理過程中信息的類型和功能。Python語言中,123表示一個數(shù)字,“123”表示一個字符串。其中,表示數(shù)字的數(shù)據(jù)類型也叫數(shù)字類型,本節(jié)主要介紹數(shù)字類型5數(shù)字類型Python的4種數(shù)字類型整數(shù):長度不超過計算機(jī)字長的“普通”整數(shù)。對于64位字長的計算機(jī),整數(shù)的取值范圍是[-263,263-1]

例:1010,99,-217,0x9a,-0x89

整數(shù)可以表示為十進(jìn)制,也可表示為十六進(jìn)制等其他進(jìn)制方式。0x開頭的數(shù)字表示十六進(jìn)制數(shù)字長整數(shù):超過整數(shù)類型表示范圍的整數(shù),數(shù)字后面加”L”或”l”,為免混淆,建議使用“L”

例:1010L,-217L,0x9a,0x1234567890abcdeedL6數(shù)字類型Python的4種數(shù)字類型浮點(diǎn)實(shí)數(shù):帶有小數(shù)的數(shù)值,十進(jìn)制或科學(xué)計數(shù)法表示

例:0.0,-77.,-2.17,96e4,4.3e-3,9.6E5科學(xué)計數(shù)法使用字母“e”或者“E”作為冪的符號,以10為基數(shù)??茖W(xué)計數(shù)法含義如下:<a>e<b>=a*10b4.3e-3表示0.0043復(fù)數(shù):a+bj,a是實(shí)數(shù)部分,b是虛數(shù)部分,a、b皆是浮點(diǎn)類型,敘述部分通過后綴“J”或“j”來表示

例:12.3+4j,-5.6+7j,1.23e-4+5.6e+89j7數(shù)字類型對整數(shù)和浮點(diǎn)數(shù)處理方法中應(yīng)注意0.0與0值相同,但數(shù)據(jù)結(jié)構(gòu)不同整數(shù)與整數(shù)運(yùn)算后,結(jié)果為整數(shù);長整數(shù)與整數(shù)運(yùn)算后,為長整數(shù);浮點(diǎn)數(shù)與其他類型運(yùn)算后,為浮點(diǎn)數(shù),例如10/3=310L/3=3L10.0/3=3.333浮點(diǎn)類型不能采用十六進(jìn)制方式表示type(<val>)函數(shù)可以返回用戶提供的輸入<val>的類型例如>>>type(10)<type‘int’>8數(shù)字類型

>>>type(10L)<type‘long’>>>>type(10.0)<type‘float’>>>>type(10+10j)<type‘complex’>實(shí)際上,type()函數(shù)可以返回任何Python定義的數(shù)據(jù)類型,而不局限于數(shù)字類型9數(shù)字類型的轉(zhuǎn)換數(shù)字類型之間的轉(zhuǎn)換規(guī)則Python提供了一些數(shù)字轉(zhuǎn)換函數(shù):int()、long()、float()、complex()整數(shù)、長整數(shù)和浮點(diǎn)數(shù)之間可自由轉(zhuǎn)換,浮點(diǎn)數(shù)轉(zhuǎn)換為其他兩種類型時,小數(shù)部分會被舍棄>>>long(10.4)10L>>>int(10.999)1010數(shù)字類型的轉(zhuǎn)換函數(shù)complex()可將其他類型轉(zhuǎn)為復(fù)數(shù),但復(fù)數(shù)不可轉(zhuǎn)為其他類型,例如>>>complex(10.999)(10.999+0j)>>>int(10+10j)#將會報錯Traceback(mostrecentcalllast):File"<pyshell#0>",line1,in<module>int(10+10j)TypeError:can'tconvertcomplextoint數(shù)字類型轉(zhuǎn)換在進(jìn)行數(shù)學(xué)運(yùn)算的時候十分重要,當(dāng)需要包含小數(shù)的除法結(jié)果時,要用浮點(diǎn)類型而不是整數(shù)類型11數(shù)字類型的操作Python中數(shù)字類型的操作操作操作含義x+yx與y之和x-yx與y之差x*yx與y之積x/yx與y之商x//y不大于x與y之商的最大整數(shù)x%yx對y的模運(yùn)算abs(x)x的絕對值divmod(x,y)(x//y,x%y)pow(x,y)x的y次冪x**yx的y次冪12數(shù)字類型的操作數(shù)字類型操作舉例>>>8.0/32.6666666>>>8.0//32.0>>>divmod(8.0,3)(2.0,2.0)>>>abs(-8.63)8.63>>>pow(8,2)6413示例程序1:π的計算蒙塔卡羅(MonteCarlo)方法,又稱隨機(jī)抽樣或統(tǒng)計試驗(yàn)方法。當(dāng)所要求解的問題是某種事件出現(xiàn)的概率,或某隨機(jī)變量的期望值時,可以通過某種“試驗(yàn)”的方法求解。應(yīng)用蒙瑞特卡羅方法求解π的步驟:隨即向單位正方形和圓結(jié)構(gòu)拋灑大量點(diǎn),判斷每個點(diǎn)在圓內(nèi)或者圓外,圓內(nèi)點(diǎn)數(shù)除以圓外點(diǎn)數(shù)就是π值。隨機(jī)點(diǎn)數(shù)量越大,得到的π值越精確。問題的IPO表示如下:輸入:拋點(diǎn)數(shù)處理:計算每個點(diǎn)到圓心的距離,統(tǒng)計在圓內(nèi)點(diǎn)的數(shù)量輸出::π值14示例程序1:π的計算15示例程序1:π的計算采用蒙塔卡羅方法求解π值的Python程序如下:#m_pi.pyfromrandomimportrandomfrommathimportsqrtfromtimeimportclockDARTS=1000hits=0.0clock()forIinrange(1,DARTS):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1pi=4*(hits/DARTS)print“piis%s”%(pi)print“runningtimeis%-5.5ss”%clock()16示例程序1:π的計算該程序運(yùn)行結(jié)果如下:>>>m_pi.pypiis3.208runningtimeis0.006s由于DARTS點(diǎn)數(shù)量較少,π的值不是很精確。通過增加DARTS數(shù)量繼續(xù)試驗(yàn),在230數(shù)量級上,π的值就相對準(zhǔn)確了。進(jìn)一步增加DARTS數(shù)量,能夠進(jìn)一步增加精度17數(shù)學(xué)庫及其使用math庫中常用的數(shù)學(xué)函數(shù)函數(shù)數(shù)學(xué)表示含義piππ的近似值,15位小數(shù)eee的近似值,15位小數(shù)ceil(x)?x?向上取整floor(x)?x?向下取整pow(x,y)xy指數(shù)運(yùn)算,x的y次方log(x)lg

x對數(shù),以e為基log10(x)log10x對數(shù),以10為基sqrt(x)平方根18數(shù)學(xué)庫及其使用函數(shù)數(shù)學(xué)表示含義exp(x)exx次冪,以e為基degrees(x)弧度轉(zhuǎn)換成角度radians(x)角度轉(zhuǎn)換成弧度sin(x)sinx正弦函數(shù)cos(x)cosx余弦函數(shù)tan(x)tanx正切函數(shù)asin(x)arcsinx反正弦函數(shù),x?[-1.0,1.0]acos(x)arccosx反余弦函數(shù),x?[-1.0,1.0]atan(x)arctanx反正切函數(shù),x?[-1.0,1.0]19數(shù)學(xué)庫及其使用上述函數(shù)封裝在math庫中,對庫函數(shù)引用方式:import<庫名><庫名>.<函數(shù)名>例>>>importmath>>>math.ceil(1.2)2.0from<庫名>import<函數(shù)名><函數(shù)名>例>>>frommathimportceil,floor>>>ceil(1.2)2.0若希望引用更多庫中函數(shù)并直接使用:>>>frommathimport*20隨機(jī)數(shù)庫及其使用Random庫中常用的函數(shù)函數(shù)含義seed(x)給隨機(jī)數(shù)一個種子值,默認(rèn)為系統(tǒng)時鐘random()生成一個[0,1.0)之間的隨機(jī)小數(shù)uniform(a,b)生成一個a到b之間的隨機(jī)小數(shù)randint(a,b)生成一個a到b之間的隨機(jī)整數(shù)randrange(a,b,c)隨機(jī)生成一個從a開始到b以c遞增的數(shù)choice(<list>)從序列(例如:列表)中隨機(jī)返回一個元素shuffle(<list>)將一個列表中元素隨機(jī)打亂sample(<list>,k)從指定序列中隨機(jī)獲取k個元素21隨機(jī)數(shù)庫及其使用引用random庫函數(shù)舉例>>>fromrandomimport*>>>random0.7580946277254204>>>uniform(1,10)2.316461542527591>>>randint(1,10)5>>>randrange(0,10,4)#從0開始到10以4遞增的元素中隨機(jī)返回4>>>ra=range(10)[0,1,2,3,4,5,6,7,8,9]22隨機(jī)數(shù)庫及其使用

>>>choice(ra)7>>>shuffle(ra)#隨機(jī)改變ra的順序>>>ra[5,0,6,7,4,9,8,1,3,2]>>>sample(ra,4)[8,7,0,6]>>>seed(10)#以10為種子>>>uniform(1,10)6.142623352209221>>>uniform(1,10)4.860001492076032

23隨機(jī)數(shù)庫及其使用

>>>seed(10)#再次設(shè)定種子為10

>>>uniform(1,10)6.142623352209221>>>uniform(1,10)4.860001492076032設(shè)定相同的種子后,每次調(diào)用隨機(jī)函數(shù)生成的隨機(jī)數(shù)都是相同的。隨機(jī)種子的作用:相同的種子產(chǎn)生相同的偽隨機(jī)數(shù)序列,便于通過相同的隨機(jī)數(shù)進(jìn)行驗(yàn)證242008.05第7章:分支結(jié)構(gòu)2024/1/2625精選2021版課件(一)PM2.5指數(shù)分級例子#pm25.py#空氣質(zhì)量提醒.

defmain(): PM=input("Whatistoday’sPM2.5?") #打印相應(yīng)提醒 ifPM>75: print("Unhealthy.Becareful!") iffahrenheit<35: print("Good.Gorunning!")main()26(一)PM2.5指數(shù)分級例子輸入:接受外部輸入PM2.5值處理:空氣質(zhì)量分級算法輸出:打印空氣質(zhì)量提醒偽代碼如下:

ifPM2.5值>75

打印空氣污染警告 ifPM2.5值<35

打印空氣質(zhì)量優(yōu),建議戶外運(yùn)動27(一)PM2.5指數(shù)分級例子——流程圖28(二)if語句格式語句格式如下 if<condition>:

<body>其中<body>是一個或多個語句序列先判斷<condition>條件:True,則執(zhí)行body,再轉(zhuǎn)向下一條語句;False,則直接跳過body,轉(zhuǎn)向下一條語句;29(三)簡單條件構(gòu)造簡單條件基本形式<expr><relop><expr><relop>是關(guān)系操作符<,<=,==,>=,>,!=使用“=”表示賦值語句,使用“==”表示等于<condition>是布爾表達(dá)式,為bool類型,值true或false以True和False表示除數(shù)字外,字符或字符串也可以用于條件比較30(三)簡單條件構(gòu)造(關(guān)系運(yùn)算符的使用)>>>3<4True>>>3*4<3+4False>>>"hello"=="hello"True>>>"hello"<"hello"False>>>"Hello"<"hello"True31(四)復(fù)雜條件的構(gòu)造分支和循環(huán)結(jié)構(gòu)中都有可能需要使用較為復(fù)雜的條件進(jìn)行控制僅使用關(guān)系運(yùn)算符無法表達(dá)一些完整信息例如:閏年的判斷字母字符的判斷需要借助于布爾操作符構(gòu)造出復(fù)雜條件32布爾操作符布爾操作符:and,or和not布爾運(yùn)算符and和or用于組合兩個布爾表達(dá)式,并產(chǎn)生一個布爾結(jié)果<expr>and<expr><expr>or<expr>not運(yùn)算符計算一個布爾表達(dá)式的反not<expr>33布爾操作結(jié)果PQP

andQPorQnotPTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrue34布爾操作符aornotbandcPython中布爾操作符的優(yōu)先級,從高分到低分依次是not、and最低是or。所以上面的達(dá)式等于如下這個帶括號的版本:(aor((notb)andc))例如:閏年的判斷Y%400==0ory%4==0andy%100!=0例如:字母字符的判斷C>=‘A’andC<=‘Z’orC>=‘a(chǎn)’andC<=‘z’352008.05第8章:循環(huán)結(jié)構(gòu)2024/1/2636精選2021版課件for循環(huán)Python可以使用for語句循環(huán)遍歷整個序列的值 for<var>in<sequence>: <body>在for循環(huán)中,循環(huán)變量var遍歷了隊(duì)列中的每一個值,循環(huán)的語句體為每個值執(zhí)行一次。37for循環(huán)-求平均數(shù)平均數(shù)計算程序的IPO如下:輸入:待輸入數(shù)字個數(shù),數(shù)字處理:平均數(shù)算法輸出:平均數(shù)通用設(shè)計方案:

輸入數(shù)字的個數(shù)n

將sum初始化為0

循環(huán)n次:

輸入數(shù)字x

將x加入sum中

將sum/n作為平均數(shù)輸出出來38for循環(huán)-代碼#average1.py n=input("Howmanynumbers?") sum=0.0 foriinrange(n): x=input("Enteranumber>>") sum=sum+x print"\nTheaverageis",sum/n39for循環(huán)-執(zhí)行以下是程序的執(zhí)行

溫馨提示

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

最新文檔

評論

0/150

提交評論