




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
全國計算機等級考試二級教程
Python語言程序設(shè)計
(2018年版)【第8章】
Python標準庫概覽標準庫:turtle庫(必選)標準庫:random庫(必選)、time庫(可選)考綱考點知識導圖turtle庫概述turtle(海龜)是Python重要的標準庫之一,它能夠進行基本的圖形繪制。turtle庫繪制圖形有一個基本框架:一個小海龜在坐標系中爬行,其爬行軌跡形成了繪制圖形。對于小海龜來說,有“前進”、“后退”、“旋轉(zhuǎn)”等爬行行為,對坐標系的探索也通過“前進方向”、“后退方向”、“左側(cè)方向”和“右側(cè)方向”等小海龜自身角度方位來完成。turtle庫概述使用import保留字對turtle庫的引用有如下三種方式第一種,importturtle,則對turtle庫中函數(shù)調(diào)用采用turtle.<函數(shù)名>()形式。turtle庫概述
12importturtleturtle.circle(200)
第二種,fromturtleimport*,則對turtle庫中函數(shù)調(diào)用直接采用<函數(shù)名>()形式,不在使用turtle.作為前導。turtle庫概述
12fromturtleimport*circle(200)
第三種,importturtleast,則對turtle庫中函數(shù)調(diào)用采用更簡潔的t.<函數(shù)名>()形式,保留字as的作用是將turtle庫給予別名t。turtle庫概述
12importturtleastt.circle(200)
turtle庫包含100多個功能函數(shù),主要包括窗體函數(shù)、畫筆狀態(tài)函數(shù)、畫筆運動函數(shù)等三類。turtle庫與基本繪圖turtle.setup(width,height,startx,starty)窗體函數(shù)作用:設(shè)置主窗體的大小和位置參數(shù):width
:窗口寬度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口寬度與屏幕的比例;height:窗口高度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口高度與屏幕的比例;startx:窗口左側(cè)與屏幕左側(cè)的像素距離,如果值是None,窗口位于屏幕水平中央;starty:窗口頂部與屏幕頂部的像素距離,如果值是None,窗口位于屏幕垂直中央;畫筆狀態(tài)函數(shù)函數(shù)描述pendown()放下畫筆penup()提起畫筆,與pendown()配對使用pensize(width)設(shè)置畫筆線條的粗細為指定大小color()設(shè)置畫筆的顏色begin_fill()填充圖形前,調(diào)用該方法end_fill()填充圖形結(jié)束filling()返回填充的狀態(tài),True為填充,F(xiàn)alse為未填充clear()清空當前窗口,但不改變當前畫筆的位置reset()清空當前窗口,并重置位置等狀態(tài)為默認值screensize()設(shè)置畫布的長和寬hideturtle()隱藏畫筆的turtle形狀showturtle()顯示畫筆的turtle形狀isvisible()如果turtle可見,則返回Truewrite(str,font=None)輸出font字體的字符串turtle中的畫筆(即小海龜)可以通過一組函數(shù)來控制,其中turtle.penup()和turtle.pendown()是一組,它們分別表示畫筆的和落下,函數(shù)定義如下:畫筆狀態(tài)函數(shù)turtle.penup()別名
turtle.pu(),turtle.up()作用:抬起畫筆,之后,移動畫筆不繪制形狀參數(shù):無
turtle.pendown()別名
turtle.pd(),turtle.down()作用:落下畫筆,之后,移動畫筆將繪制形狀參數(shù):無turtle.pensize()函數(shù)用來設(shè)置畫筆尺寸畫筆狀態(tài)函數(shù)turtle.pensize(width)別名
turtle.width()作用:設(shè)置畫筆寬度,當無參數(shù)輸入時返回當前畫筆寬度參數(shù):width
:設(shè)置的畫筆線條寬度,如果為None或者為空,函數(shù)則返回當前畫筆寬度。turtle.pencolor()函數(shù)給畫筆設(shè)置顏色turtle.pencolor(colorstring)
或者
turtle.pencolor((r,g,b))作用:設(shè)置畫筆顏色,當無參數(shù)輸入時返回當前畫筆顏色參數(shù):colorstring
:表示顏色的字符串,例如:"purple"、"red"、"blue"等(r,g,b):顏色對應(yīng)RGB的01數(shù)值,例如:1,0.65,0
畫筆運動函數(shù)函數(shù)描述forward()沿著當前方向前進指定距離backward()沿著當前相反方向后退指定距離right(angle)向右旋轉(zhuǎn)angle角度left(angle)向左旋轉(zhuǎn)angle角度goto(x,y)移動到絕對坐標(x,y)處setx()將當前x軸移動到指定位置sety()將當前y軸移動到指定位置setheading(angle)設(shè)置當前朝向為angle角度home()設(shè)置當前畫筆位置為原點,朝向東。circle(radius,e)繪制一個指定半徑r和角度e的圓或弧形dot(r,color)繪制一個指定半徑r和顏色color的圓點undo()撤銷畫筆最后一步動作speed()設(shè)置畫筆的繪制速度,參數(shù)為0-10之間turtle.fd()函數(shù)最常用,它控制畫筆向當前行進方向前進一個距離畫筆狀態(tài)函數(shù)turtle.seth()函數(shù)用來改變畫筆繪制方向turtle.fd(distance)別名
turtle.forward(distance)作用:向小海龜當前行進方向前進distance距離參數(shù):distance:行進距離的像素值,當值為負數(shù)時,表示向相反方向前進。turtle.seth(to_angle)別名
turtle.setheading(to_angle)作用:設(shè)置小海龜當前行進方向為to_angle,該角度是絕對方向角度值。參數(shù):to_angle
:角度的整數(shù)值。turtle.circle()函數(shù)用來繪制一個弧形畫筆狀態(tài)函數(shù)turtle.circle(radius,extent=None)作用:根據(jù)半徑radius繪制extent角度的弧形。參數(shù):radius:弧形半徑,當值為正數(shù)時,半徑在小海龜左側(cè),當值為負數(shù)時,半徑在小海龜右側(cè);extent:繪制弧形的角度,當不給該參數(shù)或參數(shù)為None時,繪制整個圓形。random庫概述使用random庫主要目的是生成隨機數(shù)這個庫提供了不同類型的隨機數(shù)函數(shù),其中最基本的函數(shù)是random.random(),它生成一個[0.0,1.0)之間的隨機小數(shù),所有其他隨機函數(shù)都是基于這個函數(shù)擴展而來。random庫概述>>>fromrandomimport*>>>random()0.5780913011344704>>>random()0.20609823213950174random庫的常用函數(shù)random庫與隨機數(shù)運用函數(shù)描述seed(a=None)初始化隨機數(shù)種子,默認值為當前系統(tǒng)時間random()生成一個[0.0,1.0)之間的隨機小數(shù)randint(a,b)生成一個[a,b]之間的整數(shù)getrandbits(k)生成一個k比特長度的隨機整數(shù)randrange(start,stop[,step])生成一個[start,stop)之間以step為步數(shù)的隨機整數(shù)uniform(a,b)生成一個[a,b]之間的隨機小數(shù)choice(seq)從序列類型(例如:列表)中隨機返回一個元素shuffle(seq)將序列類型中元素隨機排列,返回打亂后的序列sample(pop,k)從pop類型中隨機選取k個元素,以列表類型返回random庫使用random.seed(a)對后續(xù)產(chǎn)生的隨機數(shù)設(shè)置種子a。random庫與隨機數(shù)運用>>>fromrandomimport*>>>seed(10)>>>random()0.5714025946899135>>>random()0.4288890546751146>>>seed(10)#再次設(shè)置相同的種子,則后續(xù)產(chǎn)生的隨機數(shù)相同>>>random()0.5714025946899135>>>random()0.4288890546751146設(shè)置隨機數(shù)種子的好處是可以準確復現(xiàn)隨機數(shù)序列,用于重復程序的運行軌跡。對于僅使用隨機數(shù)但不需要復現(xiàn)的情形,可以不用設(shè)置隨機數(shù)種子。如果程序沒有顯式設(shè)置隨機數(shù)種子,則使用隨機數(shù)生成函數(shù)前,將默認以當前系統(tǒng)的運行時間為種子產(chǎn)生隨機序列。random庫與隨機數(shù)運用time庫概述處理時間是程序最常用的功能之一,time庫是Python提供的處理時間標準庫。time庫提供系統(tǒng)級精確計時器的計時功能,可以用來分析程序性能,也可讓程序暫停運行時間。time庫概述>>>importtime>>>time.localtime()time.struct_time(tm_year=2017,tm_mon=12,tm_mday=2,tm_hour=14,tm_min=44,tm_sec=9,tm_wday=4,tm_yday=26,tm_isdst=0)time庫的功能主要分為3個方面:時間處理、時間格式化和計時。時間處理主要包括4個函數(shù):time.time()、time.gmtime()、time.localtime()、time.ctime()。時間格式化主要包括3個函數(shù):time.mktime()、time.strftime()、time.strptime()。計時主要包括3個函數(shù):time.sleep()、time.monotonic()、time.perf_counter()time庫概述使用time.time()獲取當前時間戳使用time.gmtime(secs)獲取當前時間戳對應(yīng)的struct_time對象time庫概述>>>importtime>>>time.time()1516939876.6022282>>>time.gmtime(now)time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=4,tm_min=11,tm_sec=16,tm_wday=4,tm_yday=26,tm_isdst=0)使用time.localtime(secs)獲取當前時間戳對應(yīng)的本地時間的struct_time對象注意結(jié)果與gmtime的區(qū)別,UTC時間已自動轉(zhuǎn)換為北京時間。time庫概述>>>time.localtime(now)time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=12,tm_min=11,tm_sec=16,tm_wday=4,tm_yday=26,tm_isdst=0)使用time.ctime(secs)獲取當前時間戳對應(yīng)的易讀字符串表示,內(nèi)部會調(diào)用time.localtime()函數(shù)以輸出當?shù)貢r間。time庫概述>>>time.ctime(now)'FriJan2612:11:162018'time庫使用time.mktime()、time.strftime()、time.strptime()進行時間格式化。time庫概述使用time.mktime(t)將struct_time對象t轉(zhuǎn)換為時間戳,注意t代表當?shù)貢r間。struct_time對象的元素如下time庫概述下標屬性值0tm_year年份,整數(shù)1tm_mon月份[1,12]2tm_mday日期[1,31]3tm_hour小時[0,23]4tm_min分鐘[0,59]5tm_sec秒[0,61]6tm_wday星期[0,6](0表示星期一)7tm_yday該年第幾天[1,366]8tm_isdst是否夏時令,0否,1是,-1未知調(diào)用time.mktime(t)函數(shù)time.strftime()函數(shù)是時間格式化最有效的方法,幾乎可以以任何通用格式輸出時間。該方法利用一個格式字符串,對時間格式進行表達。time庫概述>>>t=time.localtime(now)>>>time.mktime(t)1516939876.0>>>time.ctime(time.mktime(t))'FriJan2612:11:162018'>>>lctime=time.localtime()>>>lctimetime.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=12,tm_min=55,tm_sec=20,tm_wday=4,tm_yday=26,tm_isdst=0)>>>time.strftime("%Y-%m-%d%H:%M:%S",lctime)'2018-01-2612:55:20'strftime()方法的格式化控制符time庫概述格式化字符串日期/時間值范圍和實例%Y年份0001~9999,例如:1900%m月份01~12,例如:10%B月名January~December,例如:April%b月名縮寫Jan~Dec,例如:Apr%d日期01~31,例如:25%A星期Monday~Sunday,例如:Wednesday%a星期縮寫Mon~Sun,例如:Wed%H小時(24h制)00~23,例如:12%I小時(12h制)01~12,例如:7%p上/下午AM,PM,例如:PM%M分鐘00~59,例如:26%S秒00~59,例如:26strptime()方法與strftime()方法完全相反,用于提取字符串中時間來生成strut_time對象,可以很靈活的作為time模塊的輸入接口time庫概述>>>timeString='2018-01-2612:55:20'>>>time.strptime(timeString,"%Y-%m-%d%H:%M:%S")time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=12,tm_min=55,tm_sec=20,tm_wday=4,tm_yday=26,tm_isdst=-1)time庫與程序計時程序計時是非常常用的功能,尤其是對于運行時間較長的程序,往往需要先進行小規(guī)模(短時間)的實驗,并根據(jù)實驗結(jié)果預估最終程序的大致運行時間。程序計時主要要包含三個要素:程序開始/結(jié)束時間、程序運行總時間、程序各核心模塊運行時間。下面以1千萬次循環(huán)計時為例介紹程序計時的實現(xiàn),并進一步理解time模塊相關(guān)函數(shù)的運用。time庫與程序計時以1千萬次循環(huán)為主體,模擬實際程序的核心模塊,用time.sleep()來模擬實際程序的其他模塊。time庫與程序計時
123456789101112importtimedef
coreLoop():limit=10**8while(limit>0):limit-=1
defotherLoop1():
time.sleep(0.2)
defotherLoop2():
time.sleep(0.4)
time庫與程序計時
1314151617181920212223242526272829303132333435def
main():
startTime=time.localtime()
print('程序開始時間:',time.strftime('%Y-%m-%d%H:%M:%S',startTime))
startPerfCounter=time.perf_counter()otherLoop1()otherLoop1PerfCounter=time.perf_counter()otherLoop1Perf=otherLoop1PerfCounter-startPerfCounter
coreLoop()
coreLoopPerfCounter=time.perf_counter()
coreLoopPerf=coreLoopPerfCounter-otherLoop1PerfCounterotherLoop2()otherLoop2PerfCounter=time.perf_counter()
otherLoop2Perf=otherLoop2PerfCounter-coreLoopPerfCounter
endPerfCounter=time.perf_counter()
totalPerf=endPerfCounter-startPerfCounter
endTime=time.localtime()print("模塊1運行時間是:{}秒".format(otherLoop1Perf))print("核心模塊運行時間是:{}秒".format(coreLoopPerf))print("模塊2運行時間是:{}秒".format(otherLoop2Perf))print("程序運行總時間是:{}秒".format(totalPerf))print('程序結(jié)束時間:',time.strftime('%Y-%m-%d%H:%M:%S',endTime))
main()
time庫與程序計時程序開始時間:2017-12-2613:46:39模塊1運行時間是:0.20003105182731706秒核心模塊運行時間是:5.987101639820927秒模塊2運行時間是:0.40018931343066555秒程序運行總時間是:6.587323585324574秒程序結(jié)束時間:
2017-12-2613:46:45程序運行的輸出效果如下實例解析:雪景藝術(shù)繪圖turtle圖形藝術(shù),指利用turtle庫畫筆創(chuàng)造性繪制絢麗多彩藝術(shù)圖形的過程。turtle圖形藝術(shù)效果中隱含著很多隨機元素,如隨機顏色、尺寸、位置和數(shù)量等。在圖形藝術(shù)繪制中需要引入隨機函數(shù)庫random。常用randint()函數(shù),生成指定范圍內(nèi)的隨機數(shù),雪景藝術(shù)繪圖“雪景”圖形藝術(shù)背景為黑色,分為上下兩個區(qū)域,上方是漫天彩色雪花,下方是由遠及近的灰色橫線漸變。該圖運用了隨機元素,如雪花位置、顏色、大小、花瓣數(shù)目、地面灰色線條長度、線條位置等,需要使用turtle庫和random庫。雪景藝術(shù)繪圖繪制分為三個步驟構(gòu)建圖的背景繪制雪花效果繪制雪地效果雪景藝術(shù)繪圖第一步,構(gòu)建圖的背景設(shè)定窗體大小為800x600像素,窗體顏色為black。然后,定義上方雪花繪制函數(shù)drawSnow()和下方雪地繪制函數(shù)drawGround()。雪景藝術(shù)繪圖第二步,繪制雪花效果。為體現(xiàn)藝術(shù)效果,drawSnow()函數(shù)首先隱藏turtle畫筆、設(shè)置畫筆大小、繪制速度,然后使用for循環(huán)繪制100朵雪花。雪花大小snowsize、雪花花瓣數(shù)dens都分別設(shè)定為一定數(shù)值范圍隨機數(shù)。最后通過for循環(huán)繪制出多彩雪花。雪景藝術(shù)繪圖第三步,繪制雪地效果。drawGround()函數(shù)使用for循環(huán)繪制地面400個小橫線,畫筆大小pensize、位置坐標x、y、線段長度均通過randint()函數(shù)作為隨機數(shù)產(chǎn)生。雪景藝術(shù)繪圖雪景藝術(shù)繪圖實例9.1
1234567891011121314151617181920#SnowView.pyfromturtleimport*fromrandomimport*def
drawSnow():
hideturtle()
pensize(2)for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 母嬰護理初級復習試題含答案(一)
- 高級育兒試卷復習測試卷含答案
- 環(huán)保行業(yè)運營流程優(yōu)化作業(yè)指導書
- 護師及主管護師練習卷含答案
- 奶茶店品牌評估營銷手冊
- 項目開發(fā)進度管理與計劃安排
- 分析法律制定中權(quán)利約束邊界
- 員工培訓計劃與實施細則
- 醫(yī)療敷料貼合度提高方法
- 三農(nóng)村環(huán)境治理綜合方案
- 研究生學術(shù)英語寫作 課件 Chapter 7 Abstract;Chapter 8 Citation and Reference
- ISO45001管理體系培訓課件
- 心力衰竭患者利尿劑抵抗診斷及管理中國專家共識2024解讀
- 主任臨床查房程序規(guī)范及評分標準
- 《望海潮》《揚州慢》導學案(含答案) 統(tǒng)編版高中語文選擇性必修下冊
- 土壤有機質(zhì)的測定 編制說明
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- 醫(yī)美機構(gòu)轉(zhuǎn)讓合同模板
- 全國基層退役軍人服務(wù)中心(站)工作人員職業(yè)技能競賽考試題庫-上(單選、多選題)
- 2024年高考文綜(海南卷)政治試題及答案
- DL 5190.2-2019 電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機組
評論
0/150
提交評論