版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python程序設(shè)計(jì)與案例教程第12章Python標(biāo)準(zhǔn)庫12.1random庫
隨機(jī)數(shù):在某次產(chǎn)生過程中是按照實(shí)驗(yàn)過程中表現(xiàn)的分布概率隨機(jī)產(chǎn)生的,其結(jié)果是不可預(yù)測(cè)、不可見的計(jì)算機(jī)的偽隨機(jī)數(shù)是由隨機(jī)種子根據(jù)一定的計(jì)算方法計(jì)算出來的數(shù)值importrandomrandom庫——random的基本方法方法含義seed(a)初始化偽隨機(jī)數(shù)生成器getstate()返回一個(gè)當(dāng)前生成器的內(nèi)部狀態(tài)的對(duì)象setstate(state)傳入一個(gè)先前利用getstate方法獲得的狀態(tài)對(duì)象,使得生成器恢復(fù)到這個(gè)狀態(tài)getrandbits(k)返回一個(gè)不大于K位的Python整數(shù)(十進(jìn)制),比如k=10,則結(jié)果在0~2^10之間的整數(shù)random庫——針對(duì)整數(shù)的方法方法含義randint(a,b)返回一個(gè)a<=N<=b的隨機(jī)整數(shù)randrange([start,]stop[,step])從指定范圍start~stop內(nèi),按指定步長(zhǎng)step遞增的集合中,獲取一個(gè)隨機(jī)整數(shù)random庫——針對(duì)序列類結(jié)構(gòu)的方法方法含義choice(seq)從非空序列seq中隨機(jī)選取一個(gè)元素。如果seq為空則彈出IndexError異常choices(population,weights=None,*,cum_weights=None,k=1)Python3.6版本新增。從population集群中隨機(jī)抽取K個(gè)元素。weights是相對(duì)權(quán)重列表,cum_weights是累計(jì)權(quán)重,兩個(gè)參數(shù)不能同時(shí)存在shuffle(x[,random])隨機(jī)打亂序列x內(nèi)元素的排列順序,只能針對(duì)可變的序列sample(population,k)從population樣本或集合中隨機(jī)抽取K個(gè)不重復(fù)的元素形成新的序列。常用于不重復(fù)的隨機(jī)抽樣,返回的是一個(gè)新的序列,不會(huì)破壞原有序列。從一個(gè)整數(shù)區(qū)間隨機(jī)抽取一定數(shù)量的整數(shù)。如果k大于population的長(zhǎng)度,則彈出ValueError異常random庫——真值分布方法含義random()返回一個(gè)介于左閉右開[0.0,1.0)區(qū)間的浮點(diǎn)數(shù)uniform(a,b)返回一個(gè)介于a和b之間的浮點(diǎn)數(shù)。如果a>b,則是b到a之間的浮點(diǎn)數(shù)。這里的a和b都有可能出現(xiàn)在結(jié)果中triangular(low,high,mode)返回一個(gè)low<=N<=high的三角形分布的隨機(jī)數(shù)。參數(shù)mode指明眾數(shù)出現(xiàn)位置betavariate(alpha,beta)β分布。返回的結(jié)果在0~1之間expovariate(lambd)指數(shù)分布gammavariate(alpha,beta)伽馬分布gauss(mu,sigma)高斯分布normalvariate(mu,sigma)正態(tài)分布random庫常用方法——random()(1)random()功能:返回一個(gè)介于左閉右開[0.0,1.0)區(qū)間的浮點(diǎn)數(shù)>>>importrandom>>>random.random()0.8050901378898727注意:該語句每次運(yùn)行的結(jié)果不同,但都介于0~1之間。random庫常用方法——seed()(2)seed(a)功能:初始化偽隨機(jī)數(shù)生成器,給隨機(jī)數(shù)對(duì)象一個(gè)種子值,用于產(chǎn)生隨機(jī)序列。例1:隨機(jī)數(shù)應(yīng)用舉例1fromnumpyimport*2num=03while(num<5):4 random.seed(5)5 print(random.random())6 num+=11importpickle2i=123453f=2017.20174b=False5fp=open("e:\\string2.txt","wb")6pickle.dump(i,fp)7pickle.dump(f,fp)8pickle.dump(b,fp)9fp.close()例2:修改例1,seed()只執(zhí)行一次。random庫常用方法——seed()random庫常用方法——randint()(3)randint(a,b)功能:返回一個(gè)a<=N<=b的隨機(jī)整數(shù)N>>>importrandom>>>random.randint(3,10)4>>>random.randint(3,10)7random庫常用方法——randrange()(4)randrange([start,]stop[,step])功能:從指定范圍start~stop內(nèi),按指定步長(zhǎng)step遞增的集合中,獲取一個(gè)隨機(jī)整數(shù)>>>importrandom>>>random.randrange(1,10,2)3>>>random.randrange(1,10,2)9random庫常用方法——choice()(5)choice(seq)功能:從非空序列seq中隨機(jī)選取一個(gè)元素>>>importrandom>>>random.choice([1,2,3,5,9])5>>>random.choice('AString')Arandom庫常用方法——shuffle()(6)shuffle(x[,random])功能:隨機(jī)打亂序列x內(nèi)元素的排列順序,返回隨機(jī)排序后的序列使用shuffle()方法實(shí)現(xiàn)模擬洗牌程序。1importrandom2list=[20,16,10,5]3random.shuffle(list)4print("隨機(jī)排序列表:",list)5random.shuffle(list)6print("隨機(jī)排序列表:",list)random庫常用方法——sample()(7)sample(population,k)功能:從population樣本或集合中隨機(jī)抽取K個(gè)不重復(fù)的元素形成新的序列>>>random.sample([10,20,30,40,50],k=4)[30,40,50,20]>>>random.sample([10,20,30,40,50],k=4)[20,50,10,40]>>>random.sample([10,20,30,40,50],k=4)[20,40,30,50]random庫常用方法——uniform()(8)uniform(a,b)功能:返回一個(gè)介于a和b之間的浮點(diǎn)數(shù)>>>importrandom>>>random.uniform(10,20)13.516894180425453random庫應(yīng)用舉例1fromrandomimport*2n=int(input("請(qǐng)輸入n的值(1~10):"))3m=int(input("請(qǐng)輸入m的值:"))4count=15seed(m)6b=randint(1,10)7whileTrue:8 if(b==n):9 break10 count=count+111 b=randint(1,10)12print("{}timestogotit".format(count))例3:用戶從鍵盤輸入兩個(gè)整數(shù),第一個(gè)數(shù)是要猜的數(shù)n(n<10),第二個(gè)數(shù)作為隨機(jī)種子,隨機(jī)生成一個(gè)1~10的整數(shù),如果該數(shù)不等于n,則再次生成隨機(jī)數(shù),如此循環(huán),直至猜中數(shù)n,輸出“Ntimestogotit”,其中N為猜測(cè)的次數(shù)。12.2time庫python中表示時(shí)間方法:時(shí)間戳,即從1975年1月1日00:00:00到現(xiàn)在的秒數(shù)格式化后的時(shí)間字符串時(shí)間struct_time元組時(shí)間struct_time元組中元素主要有:tm_year:年tm_mon:月tm_mday:日tm_hour:時(shí)tm_min:分tm_sec:秒tm_wday:星期幾,范圍是0~6,0表示周日tm_yday:一年中的第幾天,范圍是1~366tm_isdst:是否是夏令時(shí)時(shí)間獲取函數(shù)功能time.time()獲取當(dāng)前時(shí)間戳,1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù)time.ctime()獲取當(dāng)前時(shí)間,返回字符串time.gmtime()返回指定時(shí)間戳對(duì)應(yīng)的utc時(shí)間的struct_time對(duì)象格式time.localtime()返回以指定時(shí)間戳對(duì)應(yīng)的本地時(shí)間的struct_time對(duì)象time.mktime(t)返回用秒數(shù)來表示時(shí)間的浮點(diǎn)數(shù)時(shí)間獲取——time()(1)time()函數(shù)功能:獲取當(dāng)前時(shí)間戳,返回值為浮點(diǎn)數(shù),表示從1970年1月1日0點(diǎn)0分開始,到當(dāng)前時(shí)間,一共經(jīng)歷了多少秒>>>importtime>>>time.time()1533554029.3566148時(shí)間獲取——ctime()(2)ctime()函數(shù)功能:獲取當(dāng)前時(shí)間,以字符串形式返回>>>importtime>>>time.ctime()'MonAug619:13:562018'>>>time.ctime(1533554029.3566148)'MonAug619:13:492018'時(shí)間獲取——gmtime()(3)gmtime()函數(shù)功能:返回指定時(shí)間戳對(duì)應(yīng)的utc時(shí)間的struct_time對(duì)象格式>>>importtime>>>time.gmtime()time.struct_time(tm_year=2018,tm_mon=10,tm_mday=6,tm_hour=11,tm_min=18,tm_sec=21,tm_wday=5,tm_yday=279,tm_isdst=0時(shí)間獲取——localtime()(4)localtime()函數(shù)功能:返回以指定時(shí)間戳對(duì)應(yīng)的本地時(shí)間的struct_time對(duì)象格式>>>importtime>>>time.localtime(1533554029.3566148)time.struct_time(tm_year=2018,tm_mon=8,tm_mday=6,tm_hour=19,tm_min=13,tm_sec=49,tm_wday=0,tm_yday=218,tm_isdst=0)時(shí)間獲取——mktime()(5)mktime(t)函數(shù)功能:返回用秒數(shù)來表示時(shí)間的浮點(diǎn)數(shù)>>>importtime>>>t=(2018,8,36,17,25,35,1,48,58)>>>time.mktime(t)1536139535.0時(shí)間格式化函數(shù)功能time.strftime(format[,t])將struct_time對(duì)象實(shí)例轉(zhuǎn)換成字符串time.strptime(str,tpl)將時(shí)間字符串轉(zhuǎn)換為struct_time時(shí)間對(duì)象time.asctime([t])將一個(gè)tuple或struct_time形式的時(shí)間轉(zhuǎn)換為一個(gè)24個(gè)字符的時(shí)間字符串時(shí)間格式化——strftime()(1)time.strftime(tpl,ts)功能:將struct_time對(duì)象實(shí)例轉(zhuǎn)換成字符串時(shí)間日期格式化控制符格式化字符串
日期/時(shí)間說明
取值范圍%Y四位數(shù)年份
0000~9999%y兩位數(shù)年份00~99%m月份
01~12%B月份名稱
January~December%b月份名稱縮寫
Jan~Dec%d日期
01~31%A星期
Monday~Sunday%a星期縮寫
Mon~Sun%H小時(shí)(24h制)
00~23%h小時(shí)(12h制)
01~12%p上/下午
AM,PM%M分鐘
00~59%S秒
00~59時(shí)間格式化——strftime()>>>importtime>>>time.strftime("%b%d%Y%H:%M:%S",time.gmtime())'Oct06201812:30:38'>>>time.strftime("%B%d%Y%p%h:%M:%S",time.gmtime())'October062018PMOct:33:52'時(shí)間格式化——strptime()(2)strptime(str,tpl)功能:將時(shí)間字符串轉(zhuǎn)換為struct_time時(shí)間對(duì)象>>>time.strptime("30Nov17","%d%b%y")time.struct_time(tm_year=2017,tm_mon=11,tm_mday=30,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=3,tm_yday=334,tm_isdst=-1)>>>time.strptime("Oct06201812:30:38","%b%d%Y%H:%M:%S")time.struct_time(tm_year=2018,tm_mon=10,tm_mday=6,tm_hour=12,tm_min=30,tm_sec=38,tm_wday=5,tm_yday=279,tm_isdst=-1)時(shí)間格式化——asctime()(3)asctime([t])功能:將一個(gè)tuple或struct_time形式的時(shí)間(轉(zhuǎn)換為時(shí)間字符串>>>t=time.localtime()>>>time.asctime(t)'SatOct620:43:482018'程序計(jì)時(shí)函數(shù)功能time.sleep(s)暫停給定秒數(shù)后執(zhí)行程序time.perf_counter()返回計(jì)時(shí)器的精準(zhǔn)時(shí)間(系統(tǒng)的運(yùn)行時(shí)間),單位為秒程序計(jì)時(shí)——sleep()(1)sleep(s)功能:暫停給定秒數(shù)后執(zhí)行程序>>>importtime>>>time.sleep(5)程序計(jì)時(shí)——perf_counter()(2)perf_counter()功能:返回CPU計(jì)時(shí)器的精準(zhǔn)時(shí)間(系統(tǒng)的運(yùn)行時(shí)間),單位為秒>>>importtime>>>time.perf_counter()6486.087528257time庫應(yīng)用舉例1importtime23t=time.time()4print("nowtimeis:{}".format(t))5m=time.localtime(t)6print("nowtimeis:{}".format(m))7time.sleep(2)8t=time.time()9n=time.localtime(t)10print("nowtimeis:{}".format(n))例:獲取當(dāng)前時(shí)間,然后再格式化當(dāng)前時(shí)間輸出,暫停兩秒再獲取當(dāng)前時(shí)間,最后再格式化當(dāng)前時(shí)間輸出。設(shè)置畫布——screensize(1)screensize(canvwidth,canvheight,bg)canvwidth表示設(shè)置的畫布寬度(單位像素)canvheight表示設(shè)置的畫布高度(單位像素)bg表示設(shè)置的畫布背景顏色>>>turtle.screensize(800,600,"blue")>>>turtle.screensize()12.3turtle庫設(shè)置畫布——setup(2)setup(width,height,startx,starty)
width表示畫布寬度height表示畫布高度startx表示畫布左側(cè)與屏幕左側(cè)的像素距離starty表示畫布頂部與屏幕頂部的像素距離。>>>turtle.setup(width=0.6,height=0.6)>>>turtle.setup(width=800,height=800,startx=100,starty=100)畫筆及繪制函數(shù)控制小海龜繪圖有很多函數(shù),這些函數(shù)可以劃分為4種: 畫筆運(yùn)動(dòng)函數(shù) 畫筆控制函數(shù) 全局控制函數(shù) 其他函數(shù)畫筆運(yùn)動(dòng)函數(shù)函數(shù)功能turtle.home()將turtle移動(dòng)到起點(diǎn)(0,0)和向東turtle.forward(distance)向當(dāng)前畫筆方向移動(dòng)distance像素長(zhǎng)turtle.backward(distance)向當(dāng)前畫筆相反方向移動(dòng)distance像素長(zhǎng)度turtle.right(degree)順時(shí)針移動(dòng)degreeturtle.left(degree)逆時(shí)針移動(dòng)degreeturtle.pendown()移動(dòng)時(shí)繪制圖形,缺省時(shí)也為繪制turtle.penup()移動(dòng)時(shí)不繪制圖形,提起筆,用于另起一個(gè)地方繪制時(shí)用turtle.goto(x,y)將畫筆移動(dòng)到坐標(biāo)為x,y的位置turtle.speed(speed)畫筆繪制的速度speed取值為[0,10]的整數(shù),數(shù)字越大繪制速度越快turtle.setheading(angle)改變畫筆繪制方向turtle.circle(radius,extent,steps)繪制一個(gè)指定半徑、弧度范圍、階數(shù)(正多邊形)的弧形turtle.dot(diameter,color)繪制一個(gè)指定直徑和顏色的圓畫筆運(yùn)動(dòng)函數(shù)——setheading()(1)setheading(angle)功能:按照angle角度逆時(shí)針改變海龜?shù)男羞M(jìn)方向>>>turtle.setheading(30)畫筆運(yùn)動(dòng)函數(shù)——circle()(1)circle(radius,extent,steps)radius表示半徑
extent表示繪制弧形的角度
steps表示階數(shù)>>>turtle.circle(50)>>>turtle.circle(50,180)>>>turtle.circle(50,steps=4)畫筆控制函數(shù)函數(shù)功能turtle.pensize(width)設(shè)置繪制圖形時(shí)畫筆的寬度turtle.pencolor(color)設(shè)置畫筆顏色,color為顏色字符串或者RGB值turtle.fillcolor(colorstring)設(shè)置繪制圖形的填充顏色turtle.color(color1,color2)同時(shí)設(shè)置pencolor=color1,fillcolor=color2turtle.filling()返回當(dāng)前是否在填充狀態(tài)turtle.begin_fill()準(zhǔn)備開始填充圖形turtle.end_fill()填充完成turtle.hideturtle()隱藏畫筆的箭頭形狀turtle.showturtle()顯示畫筆的箭頭形狀畫筆控制函數(shù)——pencolor()pencolor():返回當(dāng)前畫筆顏色pencolor(color):參數(shù)color為顏色字符串或者RGB值>>>turtle.pencolor()'black'>>>turtle.pencolor("grey")>>>turtle.pencolor((255,0,0))全局控制函數(shù)函數(shù)功能turtle.clear()清空turtle窗口,但是turtle的位置和狀態(tài)不會(huì)改變turtle.reset()清空窗口,重置turtle狀態(tài)為起始狀turtle.undo()撤銷上一個(gè)turtle動(dòng)作turtle.isvisible()返回當(dāng)前turtle是否可見turtle.stamp()復(fù)制當(dāng)前圖形turtle.write(s,font)寫文本信息全局控制函數(shù)——write()write(s,font):給畫布寫文本信息font基本形式為:font=("font-ame",font_size,"font_type
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 擊劍場(chǎng)景建設(shè)圍擋施工協(xié)議
- 建筑工程質(zhì)量管理:處方管理辦法
- 醫(yī)療機(jī)構(gòu)危險(xiǎn)廢棄物處理規(guī)范
- 旅游景區(qū)宣傳策劃團(tuán)隊(duì)聘用協(xié)議
- 建筑物流施工圖設(shè)計(jì)合同模板
- 體育場(chǎng)館地面施工合同
- 2025版化妝產(chǎn)品展示廳承包租賃合同3篇
- 2024年版油罐銷售協(xié)議3篇
- 2025年度保安服務(wù)市場(chǎng)調(diào)研與競(jìng)爭(zhēng)分析合同3篇
- 2025年度綠色建材板材采購合同3篇
- 烘干煤泥合同范例
- 4.1.1陸地水體間的相互關(guān)系課件高中地理湘教版(2019)選擇性必修一
- 【MOOC】大學(xué)生心理學(xué)-中央財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2025年“三基”培訓(xùn)計(jì)劃
- 第20課 北洋軍閥統(tǒng)治時(shí)期的政治、經(jīng)濟(jì)與文化 教案
- 山東省青島實(shí)驗(yàn)高中2025屆高三物理第一學(xué)期期末綜合測(cè)試試題含解析
- 物理人教版2024版八年級(jí)上冊(cè)6.2密度課件03
- 2024年廣西普法云平臺(tái)考試答案
- 2023-2024學(xué)年廣東省深圳市福田區(qū)八年級(jí)(上)期末英語試卷
- 鐵路設(shè)備售后服務(wù)方案
- 2023年中國(guó)華電集團(tuán)有限公司招聘考試真題
評(píng)論
0/150
提交評(píng)論