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

下載本文檔

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

文檔簡介

1、12008.0522008.053本次課主要內(nèi)容4種數(shù)字類型的概念和使用種數(shù)字類型的概念和使用一各類型數(shù)字在計算機中的表示方法各類型數(shù)字在計算機中的表示方法二Python數(shù)學庫和隨機庫的使用數(shù)學庫和隨機庫的使用三循環(huán)結(jié)構(gòu)簡介循環(huán)結(jié)構(gòu)簡介五分支結(jié)構(gòu)簡介分支結(jié)構(gòu)簡介四42008.05數(shù)字類型數(shù)字類型v 當用戶向計算機輸入當用戶向計算機輸入123123,計算機需要明確的知道這個輸入是可以進行,計算機需要明確的知道這個輸入是可以進行數(shù)學計算的數(shù)字數(shù)學計算的數(shù)字123123,還是類似人名的字符串,還是類似人名的字符串“123123”,這兩者在計算,這兩者在計算機內(nèi)部采用不一樣的存儲方式。這個需求產(chǎn)生了機

2、內(nèi)部采用不一樣的存儲方式。這個需求產(chǎn)生了“數(shù)據(jù)類型數(shù)據(jù)類型”的概念的概念v 數(shù)據(jù)類型表示信息在計算機中的不同存儲方式,進而決定了處理過程數(shù)據(jù)類型表示信息在計算機中的不同存儲方式,進而決定了處理過程中信息的類型和功能。中信息的類型和功能。PythonPython語言中,語言中,123123表示一個數(shù)字,表示一個數(shù)字,“123123”表表示一個字符串。其中,表示數(shù)字的數(shù)據(jù)類型也叫數(shù)字類型,本節(jié)主要示一個字符串。其中,表示數(shù)字的數(shù)據(jù)類型也叫數(shù)字類型,本節(jié)主要介紹數(shù)字類型介紹數(shù)字類型數(shù)字類型數(shù)字類型v PythonPython的的4 4種數(shù)字類型種數(shù)字類型n整數(shù):長度不超過計算機字長的整數(shù):長度不超過

3、計算機字長的“普通普通”整數(shù)。對于整數(shù)。對于6464位字長的位字長的計算機,整數(shù)的取值范圍是計算機,整數(shù)的取值范圍是-2-26363,2,26363-1-1 例:例:1010, 991010, 99,-217-217,0 x9a0 x9a,-0 x89-0 x89 整數(shù)可以表示為十進制,也可表示為十六進制等其他進制方式。整數(shù)可以表示為十進制,也可表示為十六進制等其他進制方式。 0 x0 x開頭的數(shù)字表示十六進制數(shù)字開頭的數(shù)字表示十六進制數(shù)字n長整數(shù):超過整數(shù)類型表示范圍的整數(shù),數(shù)字后面加長整數(shù):超過整數(shù)類型表示范圍的整數(shù),數(shù)字后面加”L”L”或或”l”l”,為免混淆,建議使用,為免混淆,建議使

4、用“L L” 例:例:1010L, -217L, 0 x9a, 0 x1234567890abcdeedL1010L, -217L, 0 x9a, 0 x1234567890abcdeedL數(shù)字類型數(shù)字類型v PythonPython的的4 4種數(shù)字類型種數(shù)字類型n浮點實數(shù):帶有小數(shù)的數(shù)值,十進制或科學計數(shù)法表示浮點實數(shù):帶有小數(shù)的數(shù)值,十進制或科學計數(shù)法表示 例:例:0.0, -77., -2.17, 96e4, 4.3e-3, 9.6E50.0, -77., -2.17, 96e4, 4.3e-3, 9.6E5 科學計數(shù)法使用字母科學計數(shù)法使用字母“e e”或者或者“E E”作為冪的符號,

5、以作為冪的符號,以1010為基數(shù)??茖W計為基數(shù)。科學計數(shù)法含義如下:數(shù)法含義如下: e = a e = a * * 10 10b b 4.3e-3 4.3e-3表示表示0.00430.0043n復(fù)數(shù):復(fù)數(shù):a+bja+bj,a a是實數(shù)部分,是實數(shù)部分,b b是虛數(shù)部分,是虛數(shù)部分,a a、b b皆是浮點類型,皆是浮點類型,敘述部分通過后綴敘述部分通過后綴“J J”或或“j j”來表示來表示 例:例:12.3+4j, -5.6+7j, 1.23e-4+5.6e+89j12.3+4j, -5.6+7j, 1.23e-4+5.6e+89j數(shù)字類型數(shù)字類型v 對整數(shù)和浮點數(shù)處理方法中應(yīng)注意對整數(shù)和浮

6、點數(shù)處理方法中應(yīng)注意n0.00.0與與0 0值相同,但數(shù)據(jù)結(jié)構(gòu)不同值相同,但數(shù)據(jù)結(jié)構(gòu)不同n整數(shù)與整數(shù)運算后,結(jié)果為整數(shù);長整數(shù)與整數(shù)運算后,為長整整數(shù)與整數(shù)運算后,結(jié)果為整數(shù);長整數(shù)與整數(shù)運算后,為長整數(shù);浮點數(shù)與其他類型運算后,為浮點數(shù)數(shù);浮點數(shù)與其他類型運算后,為浮點數(shù), ,例如例如10/3=310/3=310L/3=3L10L/3=3L10.0/3=3.33310.0/3=3.333n浮點類型不能采用十六進制方式表示浮點類型不能采用十六進制方式表示v type()type()函數(shù)可以返回用戶提供的輸入函數(shù)可以返回用戶提供的輸入的類型的類型例如例如 type(10)type(10) 數(shù)字類

7、型數(shù)字類型 type(10L)type(10L) type(10.0) type(10.0) type(10+10j) type(10+10j) n實際上,實際上,type()type()函數(shù)可以返回任何函數(shù)可以返回任何PythonPython定義的數(shù)據(jù)類型,而定義的數(shù)據(jù)類型,而不局限于數(shù)字類型不局限于數(shù)字類型數(shù)字類型的轉(zhuǎn)換數(shù)字類型的轉(zhuǎn)換v 數(shù)字類型之間的轉(zhuǎn)換規(guī)則數(shù)字類型之間的轉(zhuǎn)換規(guī)則nPythonPython提供了一些數(shù)字轉(zhuǎn)換函數(shù):提供了一些數(shù)字轉(zhuǎn)換函數(shù):int()int()、long()long()、float()float()、complex()complex()n整數(shù)、長整數(shù)和浮點數(shù)之

8、間可自由轉(zhuǎn)換,浮點數(shù)轉(zhuǎn)換為其他兩種整數(shù)、長整數(shù)和浮點數(shù)之間可自由轉(zhuǎn)換,浮點數(shù)轉(zhuǎn)換為其他兩種類型時,小數(shù)部分會被舍棄類型時,小數(shù)部分會被舍棄 long(10.4) long(10.4) 10L 10Lint(10.999)int(10.999)1010數(shù)字類型的轉(zhuǎn)換數(shù)字類型的轉(zhuǎn)換n函數(shù)函數(shù)complex()complex()可將其他類型轉(zhuǎn)為復(fù)數(shù),但復(fù)數(shù)不可轉(zhuǎn)為其他類型,可將其他類型轉(zhuǎn)為復(fù)數(shù),但復(fù)數(shù)不可轉(zhuǎn)為其他類型,例如例如 complex(10.999) complex(10.999) (10.999+0j) (10.999+0j) int(10+10j) # int(10+10j) #將會報錯

9、將會報錯 Traceback (most recent call last): Traceback (most recent call last): File , line 1, in File , line 1, in int(10+10j) int(10+10j) TypeError: cant convert complex to int TypeError: cant convert complex to int數(shù)字類型轉(zhuǎn)換在進行數(shù)學運算的時候十分重要,當需要包含小數(shù)數(shù)字類型轉(zhuǎn)換在進行數(shù)學運算的時候十分重要,當需要包含小數(shù)的除法結(jié)果時,要用浮點類型而不是整數(shù)類型的除法結(jié)果時,要用浮點類

10、型而不是整數(shù)類型數(shù)字類型的操作數(shù)字類型的操作v PythonPython中數(shù)字類型的操作中數(shù)字類型的操作操作操作操作含操作含義義x+yx與y之和x-yx與y之差x*yx與y之積x/yx與y之商x/y不大于x與y之商的最大整數(shù)x%yx對y的模運算abs(x)x的絕對值divmod(x,y)(x/y,x%y)pow(x,y)x的y次冪x*yx的y次冪數(shù)字類型的操作數(shù)字類型的操作v數(shù)字類型操作舉例數(shù)字類型操作舉例8.0/38.0/32.66666662.66666668.0/38.0/32.02.0divmod(8.0,3)divmod(8.0,3)(2.0,2.0)(2.0,2.0)abs(-8.

11、63)abs(-8.63)8.638.63pow(8,2)pow(8,2)6464示例程序示例程序1 1:的計算的計算v 蒙塔卡羅蒙塔卡羅(Monte Carlo)(Monte Carlo)方法,又稱隨機抽樣或統(tǒng)計試驗方法。當所方法,又稱隨機抽樣或統(tǒng)計試驗方法。當所要求解的問題是某種事件出現(xiàn)的概率,或某隨機變量的期望值時,可要求解的問題是某種事件出現(xiàn)的概率,或某隨機變量的期望值時,可以通過某種以通過某種“試驗試驗”的方法求解。的方法求解。v 應(yīng)用蒙瑞特卡羅方法求解應(yīng)用蒙瑞特卡羅方法求解的步驟:隨即向單位正方形和圓結(jié)構(gòu)拋灑的步驟:隨即向單位正方形和圓結(jié)構(gòu)拋灑大量點,判斷每個點在圓內(nèi)或者圓外,圓內(nèi)

12、點數(shù)除以圓外點數(shù)就是大量點,判斷每個點在圓內(nèi)或者圓外,圓內(nèi)點數(shù)除以圓外點數(shù)就是值。隨機點數(shù)量越大,得到的值。隨機點數(shù)量越大,得到的值越精確。值越精確。v 問題的問題的IPOIPO表示如下:表示如下:n輸入:拋點數(shù)輸入:拋點數(shù)n處理:計算每個點到圓心的距離,統(tǒng)計在圓內(nèi)點的數(shù)量處理:計算每個點到圓心的距離,統(tǒng)計在圓內(nèi)點的數(shù)量n輸出:輸出:值值示例程序示例程序1 1:的計算的計算示例程序示例程序1 1:的計算的計算v 采用蒙塔卡羅方法求解采用蒙塔卡羅方法求解值的值的PythonPython程序如下:程序如下:#m_pi.pyfrom random import randomfrom math imp

13、ort sqrtfrom time import clockDARTS = 1000hits = 0.0clock()for I in range(1,DARTS): x,y = random(),random() dist = sqrt(x * 2 + y * 2) if dist m_pi.pym_pi.pypi is 3.208pi is 3.208running time is 0.006srunning time is 0.006sv 由于由于DARTSDARTS點數(shù)量較少,點數(shù)量較少,的值不是很精確。通過增加的值不是很精確。通過增加DARTSDARTS數(shù)量繼續(xù)數(shù)量繼續(xù)試驗,在試驗,

14、在2 23030數(shù)量級上,數(shù)量級上,的值就相對準確了。進一步增加的值就相對準確了。進一步增加DARTSDARTS數(shù)量,數(shù)量,能夠進一步增加精度能夠進一步增加精度數(shù)學庫及其使用數(shù)學庫及其使用vmathmath庫中常用的數(shù)學函數(shù)庫中常用的數(shù)學函數(shù)函函數(shù)數(shù)數(shù)學數(shù)學表示表示含含義義pi的近似值,15位小數(shù)eee的近似值,15位小數(shù)ceil(x) x向上取整floor(x) x向下取整pow(x,y)xy指數(shù)運算,x的y次方log(x)lg x對數(shù),以e為基log10(x)log10 x對數(shù),以10為基sqrt(x)平方根x數(shù)學庫及其使用數(shù)學庫及其使用函函數(shù)數(shù)數(shù)學數(shù)學表示表示含含義義exp(x)exx次

15、冪,以e為基degrees(x)弧度轉(zhuǎn)換成角度radians(x)角度轉(zhuǎn)換成弧度sin(x)sin x正弦函數(shù)cos(x)cos x余弦函數(shù)tan(x)tan x正切函數(shù)asin(x)arcsin x反正弦函數(shù),x -1.0,1.0acos(x)arccos x反余弦函數(shù),x -1.0,1.0atan(x)arctan x反正切函數(shù),x -1.0,1.0數(shù)學庫及其使用數(shù)學庫及其使用v 上述函數(shù)封裝在上述函數(shù)封裝在mathmath庫中,對庫函數(shù)引用方式庫中,對庫函數(shù)引用方式: :nimport import . 例例 import mathimport math math.ceil(1.2) m

16、ath.ceil(1.2) 2.0 2.0nfrom from import import 例例 from math import ceil,floor from math import ceil,floor ceil(1.2) ceil(1.2) 2.0 2.0n若希望引用更多庫中函數(shù)并直接使用:若希望引用更多庫中函數(shù)并直接使用:from math import from math import * *隨機數(shù)庫及其使用隨機數(shù)庫及其使用vRandomRandom庫中常用的函數(shù)庫中常用的函數(shù)函函數(shù)數(shù)含含義義seed(x)給隨機數(shù)一個種子值,默認為系統(tǒng)時鐘random()生成一個0, 1.0)之間

17、的隨機小數(shù)uniform(a,b)生成一個a到b之間的隨機小數(shù)randint(a,b)生成一個a到b之間的隨機整數(shù)randrange(a,b,c)隨機生成一個從a開始到b以c遞增的數(shù)choice() 從序列(例如:列表)中隨機返回一個元素shuffle() 將一個列表中元素隨機打亂sample(,k)從指定序列中隨機獲取k個元素隨機數(shù)庫及其使用隨機數(shù)庫及其使用v 引用引用randomrandom庫函數(shù)舉例庫函數(shù)舉例 from random import from random import * * random random 0.7580946277254204 0.7580946277254

18、204 uniform(1,10) uniform(1,10) 2.316461542527591 2.316461542527591 randint(1,10) randint(1,10) 5 5 randrange(0,10,4) # randrange(0,10,4) #從從0 0開始到開始到1010以以4 4遞增的元素中隨機返回遞增的元素中隨機返回 4 4 ra=range(10) ra=range(10) 0,1,2,3,4,5,6,7,8,9 0,1,2,3,4,5,6,7,8,9隨機數(shù)庫及其使用隨機數(shù)庫及其使用 choice(ra)choice(ra) 7 7 shuffle(r

19、a) # shuffle(ra) #隨機改變隨機改變rara的順序的順序 ra ra 5,0,6,7,4,9,8,1,3,2 5,0,6,7,4,9,8,1,3,2 sample(ra,4) sample(ra,4) 8,7,0,6 8,7,0,6 seed(10) # seed(10) #以以1010為種子為種子 uniform(1,10) uniform(1,10) 6.142623352209221 6.142623352209221 uniform(1,10) uniform(1,10) 4.860001492076032 4.860001492076032 隨機數(shù)庫及其使用隨機數(shù)庫及

20、其使用 seed(10) #seed(10) #再次設(shè)定種子為再次設(shè)定種子為1010 uniform(1,10)uniform(1,10) 6.142623352209221 6.142623352209221 uniform(1,10) uniform(1,10) 4.860001492076032 4.860001492076032v 設(shè)定相同的種子后,每次調(diào)用隨機函數(shù)生成的隨機數(shù)都是設(shè)定相同的種子后,每次調(diào)用隨機函數(shù)生成的隨機數(shù)都是相同的。相同的。v 隨機種子的作用:相同的種子產(chǎn)生相同的偽隨機數(shù)序列,隨機種子的作用:相同的種子產(chǎn)生相同的偽隨機數(shù)序列,便于通過相同的隨機數(shù)進行驗證便于通過相

21、同的隨機數(shù)進行驗證252008.05(一)(一)PM2.5PM2.5指數(shù)分級例子指數(shù)分級例子# pm25.py# 空氣質(zhì)量提醒空氣質(zhì)量提醒. def main():PM = input(What is todays PM2.5? )# 打印相應(yīng)提醒打印相應(yīng)提醒if PM 75:print(Unhealthy. Be careful!)if fahrenheit 75打印空氣污染警告打印空氣污染警告if PM2.5值值 35打印空氣質(zhì)量優(yōu),建議戶外運動打印空氣質(zhì)量優(yōu),建議戶外運動(一)(一)PM2.5PM2.5指數(shù)分級例子指數(shù)分級例子流程圖流程圖(二)(二)ifif語句格式語句格式語句格式如下語

22、句格式如下if :其中其中是一個或多個語句序列是一個或多個語句序列先判斷先判斷條件:條件:l True,則執(zhí)行,則執(zhí)行body,再轉(zhuǎn)向下一條,再轉(zhuǎn)向下一條語句;語句;l False,則直接跳過,則直接跳過body,轉(zhuǎn)向下一,轉(zhuǎn)向下一條語句;條語句;(三)簡單條件構(gòu)造(三)簡單條件構(gòu)造l 簡單條件基本形式簡單條件基本形式 l 是關(guān)系操作符是關(guān)系操作符, =, , !=l 使用使用“=”表示賦值語句,使用表示賦值語句,使用“=”表示等于表示等于l 是布爾表達式,為是布爾表達式,為boolbool類型,值類型,值truetrue或或falsefalse以以True和和False表示表示l 除數(shù)字外,

23、除數(shù)字外,字符或字符串也可以用于條件比較字符或字符串也可以用于條件比較(三)簡單條件構(gòu)造(關(guān)系運算符的使用)(三)簡單條件構(gòu)造(關(guān)系運算符的使用) 3 3 * 4 hello = helloTrue hello Hello helloTrue(四)復(fù)雜條件的構(gòu)造(四)復(fù)雜條件的構(gòu)造l 分支和循環(huán)結(jié)構(gòu)中都有可能需要使用較為復(fù)雜的條件分支和循環(huán)結(jié)構(gòu)中都有可能需要使用較為復(fù)雜的條件進行控制進行控制l 僅使用關(guān)系運算符無法表達一些完整信息僅使用關(guān)系運算符無法表達一些完整信息l 例如:閏年的判斷例如:閏年的判斷l(xiāng) 字母字符的判斷字母字符的判斷l(xiāng) 需要借助于布爾操作符構(gòu)造出復(fù)雜條件需要借助于布爾操作符構(gòu)造

24、出復(fù)雜條件布爾操作符布爾操作符l 布爾操作符:布爾操作符: and,or和和 notl 布爾運算符布爾運算符and和和or用于組合兩個布爾表達式,并產(chǎn)用于組合兩個布爾表達式,并產(chǎn)生一個布爾結(jié)果生一個布爾結(jié)果n and n or l not運算符計算一個布爾表達式的反運算符計算一個布爾表達式的反nnot 布爾操作結(jié)果布爾操作結(jié)果PQP and QP or Qnot PTrueTrueTrueTrueFalseTrueFalseFalseTrueFalseFalseTrueFalseTrueTrueFalseFalseFalseFalseTrue布爾操作符布爾操作符l a or not b and

25、 cl Python中布爾中布爾操作操作符的優(yōu)先級,從高分到低分依次符的優(yōu)先級,從高分到低分依次是是not、and最低是最低是or。所以上面的達式等于如下這。所以上面的達式等于如下這個帶括號的版本:個帶括號的版本:l (a or (not b) and c)l 例如:閏年的判斷例如:閏年的判斷l(xiāng) Y%400=0 or y%4=0 and y %100!=0l 例如:字母字符的判斷例如:字母字符的判斷l(xiāng) C=A and C=a and C=z362008.05forfor循環(huán)循環(huán)l Python可以使用可以使用for語句循環(huán)遍歷整個序列的值語句循環(huán)遍歷整個序列的值for in :l 在在for循環(huán)中,循環(huán)變量循環(huán)中,循環(huán)變量var遍歷了隊列中的每一遍歷了隊列中的每一個值,循環(huán)的語句體為每個值執(zhí)行一次。個值,循環(huán)的語句體為每個值執(zhí)行一次。forfor循環(huán)循環(huán)- -求平均數(shù)求平均數(shù)l 平均數(shù)計算程序的平均數(shù)計算程序的IPO如下如下:輸入:待輸入數(shù)字個數(shù),數(shù)字輸入:待輸入數(shù)字個數(shù),數(shù)字處理:平均數(shù)算法處理:平均數(shù)算法輸出:平均數(shù)輸出:平均數(shù)l 通用設(shè)計方案通用設(shè)計方案:輸入數(shù)字的個數(shù)輸入數(shù)字的個數(shù)n將將sum初始化為初始化為0循環(huán)循環(huán)n次:次:輸入數(shù)字輸入數(shù)字x將將x加入加入sum中中將將sum/n作為平均數(shù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論