版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、全國計算機等級考試二級教程Python語言程序設(shè)計(2018年版)【第9章】Python標(biāo)準(zhǔn)庫概覽考綱考點標(biāo)準(zhǔn)庫: turtle庫(必選)標(biāo)準(zhǔn)庫: random庫(必選)、time庫(可選)知識導(dǎo)圖turtle庫概述turtle庫概述turtle(海龜)是Python重要的標(biāo)準(zhǔn)庫之一,它能夠進行基本的圖形繪制。turtle庫繪制圖形有一個基本框架:一個小海龜在坐標(biāo)系 中爬行,其爬行軌跡形成了繪制圖形。對于小海龜來說, 有“前進”、“后退”、“旋轉(zhuǎn)”等爬行行為,對坐標(biāo)系的探索也通過“前進方向”、“后退方向”、“左側(cè)方向”和“右側(cè)方向”等小海龜自身角度方位來完成。turtle庫概述使用import
2、保留字對turtle庫的引用有如下三種方式第一種,importturtle,則對turtle庫中函數(shù)調(diào)用采用turtle.()形式。12import turtleturtle.circle(200)turtle庫概述第二種,fromimport*,則對turtle庫中turtle函數(shù)調(diào)用直接采用()形式,不在使用turtle.作為前導(dǎo)。12from turtle import * circle(200)turtle庫概述第三種,import turtle as t,則對turtle庫中函數(shù)調(diào)用采用更簡潔的t.()形式,保留字as 的作用是將turtle庫給予別名t。12import turtl
3、e as tt.circle(200)turtle庫與基本繪圖turtle庫包含100多個功能函數(shù),主要包括窗體函數(shù)、畫筆狀態(tài)函數(shù)、畫筆運動函數(shù)等三類。窗體函數(shù)turtle.setup(width, height, startx, starty)作用:設(shè)置主窗體的大小和位置參數(shù):width :窗口寬度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口寬度與屏幕的比例;height: 窗口高度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口高度與屏幕的比例;startx:窗口左側(cè)與屏幕左側(cè)的像素距離,如果值是None,窗口位于屏幕水平中央;starty:窗口頂部與屏幕頂部的像素距離,如果值
4、是None,窗口位于屏幕垂直中央;畫筆狀態(tài)函數(shù)用該方法end_fill() 填充圖形結(jié)束filling()返回填充的狀態(tài),True為填充,F(xiàn)alse為未填充clear() 清空當(dāng)前窗口,但不改變當(dāng)前畫筆的位置reset()清空當(dāng)前窗口,并重置位置等狀態(tài)為默認值screensize()設(shè)置畫布的長和寬hideturtle() 隱藏畫筆的turtle形狀showturtle() 顯示畫筆的turtle形狀isvisible() 如果turtle可見,則返回True函數(shù)描述pendown()放下畫筆penup()提起畫筆,與pendown()配對使用pensize(width)設(shè)置畫筆線條的粗細為指
5、定大小畫筆狀態(tài)函數(shù)turtle中的畫筆(即小海龜)可以通過一組函數(shù)來控制,其中turtle.penup()和turtle.pendown() 是一組,它們分別表示畫筆的和落下,函數(shù)定義如下:turtle.penup()別名turtle.pu(), turtle.up()作用:抬起畫筆,之后,移動畫筆不繪制形狀參數(shù):無turtle.pendown()別名turtle.pd(), turtle.down()作用:落下畫筆,之后,移動畫筆將繪制形狀參數(shù):無畫筆狀態(tài)函數(shù)turtle.pensize()函數(shù)用來設(shè)置畫筆尺寸turtle.pensize(width)別名turtle.width()作用:設(shè)
6、置畫筆寬度,當(dāng)無參數(shù)輸入時返回當(dāng)前畫筆寬度參數(shù):width :設(shè)置的畫筆線條寬度,如果為None或者為空,函數(shù)則返回當(dāng)前畫筆寬度。turtle.pencolor()函數(shù)給畫筆設(shè)置顏色turtle.pencolor(colorstring) 或者turtle.pencolor(r,g,b)作用:設(shè)置畫筆顏色,當(dāng)無參數(shù)輸入時返回當(dāng)前畫筆顏色參數(shù):colorstring :表示顏色的字符串,例如:purple、red、blue等(r,g,b): 顏色對應(yīng)RGB的01數(shù)值,例如:1, 0.65, 0畫筆運動函數(shù)函數(shù)描述forward()沿著當(dāng)前方向前進指定距離backward()沿著當(dāng)前相反方向后退指
7、定距離right(angle)向右旋轉(zhuǎn)angle角度left(angle)向左旋轉(zhuǎn)angle角度goto(x,y)移動到絕對坐標(biāo)(x,y)處setx( )將當(dāng)前x軸移動到指定位置sety( )將當(dāng)前y軸移動到指定位置setheading(angle)設(shè)置當(dāng)前朝向為angle角度home()設(shè)置當(dāng)前畫筆位置為原點,朝向東。circle(radius,e)繪制一個指定半徑r和角度e的圓或弧形dot(r,color)繪制一個指定半徑r和顏色color的圓點undo()撤銷畫筆最后一步動作speed()設(shè)置畫筆的繪制速度,參數(shù)為0-10之間畫筆狀態(tài)函數(shù)turtle.fd()函數(shù)最常用,它控制畫筆向當(dāng)前
8、行進方向前進一個距離turtle.fd(distance)別名turtle.forward(distance)作用:向小海龜當(dāng)前行進方向前進distance距離參數(shù):distance :行進距離的像素值,當(dāng)值為負數(shù)時,表示向相反方向前進。turtle.seth()函數(shù)用來改變畫筆繪制方向turtle.seth(to_angle)別名turtle.setheading(to_angle)作用:設(shè)置小海龜當(dāng)前行進方向為to_angle,該角度是絕對方向角度值。參數(shù):to_angle :角度的整數(shù)值。畫筆狀態(tài)函數(shù)turtle.circle()函數(shù)用來繪制一個弧形turtle.circle(radiu
9、s, extent=None)作用:根據(jù)半徑radius繪制extent角度的弧形。參數(shù):radius :弧形半徑,當(dāng)值為正數(shù)時,半徑在小海龜左側(cè),當(dāng)值為負數(shù)時,半徑在小海龜右側(cè);extent : 繪制弧形的角度,當(dāng)不給該參數(shù)或參數(shù)為None時,繪制整個圓形。random庫概述random庫概述使用random庫主要目的是生成隨機數(shù)這個庫提供了不同類型的隨機數(shù)函數(shù),其中最基本的函數(shù)是random.random(),它生成一個0.0,1.0)之間的隨機小數(shù),所有其他隨機函數(shù)都是基于這個函數(shù)擴展而來。from random import *random()0.5780913011344704ran
10、dom()0.20609823213950174random庫與隨機數(shù)運用random庫的常用函數(shù)函數(shù)描述seed(a=None)初始化隨機數(shù)種子,默認值為當(dāng)前系統(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)將序列類型
11、中元素隨機排列,返回打亂后的序列sample(pop, k)從pop類型中隨機選取k個元素,以列表類型返回random庫與隨機數(shù)運用random庫使用random.seed(a)對后續(xù)產(chǎn)生的隨機數(shù)設(shè)置種子a。from random import *seed(10)random()0.5714025946899135random()0.4288890546751146seed(10)#再次設(shè)置相同的種子,則后續(xù)產(chǎn)生的隨機數(shù)相同random()0.5714025946899135random()0.4288890546751146random庫與隨機數(shù)運用設(shè)置隨機數(shù)種子的好處是可以準(zhǔn)確復(fù)現(xiàn)隨機數(shù)序
12、列,用于重復(fù)程序的運行軌跡。對于僅使用隨機數(shù)但不需要復(fù)現(xiàn)的情形,可以不用設(shè)置隨機數(shù)種子。如果程序沒有顯式設(shè)置隨機數(shù)種子,則使用隨機數(shù)生成函數(shù)前,將默認以當(dāng)前系統(tǒng)的運行時間為種子產(chǎn)生隨機序列。time庫概述time庫概述處理時間是程序最常用的功能之一,time庫是Python提供的處理時間標(biāo)準(zhǔn)庫。time庫提供系統(tǒng)級精確計時器的計時功能,可以用來分析程序性能,也可讓程序暫停運行時間。import timetime.localtime() time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=14, tm_min=44, tm_s
13、ec=9, tm_wday=4, tm_yday=26, tm_isdst=0)time庫概述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.t
14、ime()獲取當(dāng)前時間戳使用time.gmtime(secs)獲取當(dāng)前時間戳對應(yīng)的struct_time對象 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)import timetime.time()1516939876.6022282time庫概述使用time.localtime(secs) 獲取當(dāng)前時間戳對應(yīng)的本地時間的struct_time對象注意結(jié)果與gmtim
15、e的區(qū)別,UTC時間已自動轉(zhuǎn)換為北京時間。 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庫概述使用time.ctime(secs)獲取當(dāng)前時間戳對應(yīng)的易讀字符串表示,內(nèi)部會調(diào)用time.localtime() 函數(shù)以輸出當(dāng)?shù)貢r間。 time.ctime(now)Fri Jan 26 12:11:16 2018time庫概述time 庫使用time.mk
16、time() 、time.strftime() 、time.strptime()進行時間格式化。time庫概述使用time.mktime(t)將struct_time對象t轉(zhuǎn)換為時間戳,注意t代表當(dāng)?shù)貢r間。struct_time對象的元素如下下標(biāo)屬性值0 tm_year年份,整數(shù)1 tm_mon月份1, 122 tm_mday日期1, 313 tm_hour小時0, 234 tm_min分鐘0, 595tm_sec秒0, 616 tm_wday星期0, 6(0表示星期一)7 tm_yday該年第幾天1, 3668 tm_isdst是否夏時令,0否, 1是, -1未知time庫概述調(diào)用time.
17、mktime(t)函數(shù)time.strftime()函數(shù)是時間格式化最有效的方法,幾乎可以以任何通用格式輸出時間。該方法利用一個格式字符串,對時間格式進行表達。 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-26 12:55:20 t = t
18、ime.localtime(now) time.mktime(t)1516939876.0 time.ctime(time.mktime(t)Fri Jan 26 12:11:16 2018time庫概述strftime()方法的格式化控制符格式化字符串日期/時間值范圍和實例%Y年份00019999,例如:1900%m月份0112,例如:10%B月名JanuaryDecember,例如:April%b月名縮寫JanDec,例如:Apr%d日期01 31,例如:25%A星期MondaySunday,例如:Wednesday%a星期縮寫MonSun,例如:Wed%H小時(24h制)00 23,例如
19、:12%I小時(12h制)01 12,例如:7%p上/下午AM, PM,例如:PM%M分鐘00 59,例如:26%S秒00 59,例如:26time庫概述strptime()方法與strftime()方法完全相反,用于提取字符串中時間來生成strut_time對象, 可以很靈活的作為time模塊的輸入接口 timeString = 2018-01-26 12: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
20、=55,tm_sec=20,tm_wday=4,tm_yday=26, tm_isdst=-1)time庫與程序計時time庫與程序計時程序計時是非常常用的功能,尤其是對于運行時間較長的程序,往往需要先進行小規(guī)模(短時間)的實驗,并根據(jù)實驗結(jié)果預(yù)估最終程序的大致運行時間。程序計時主要要包含三個要素:程序開始/結(jié)束時間、程序運行總時間、程序各核心模塊運行時間。下面以1千萬次循環(huán)計時為例介紹程序計時的實現(xiàn),并進一步理解time模塊相關(guān)函數(shù)的運用。time庫與程序計時以1千萬次循環(huán)為主體,模擬實際程序的核心模塊,用time.sleep()來模擬實際程序的其他模塊。123456789101112imp
21、ort timedefcoreLoop(): limit = 10*8while (limit 0): limit -= 1defotherLoop1(): time.sleep(0.2)defotherLoop2():time.sleep(0.4)time庫與程序計時1314151617181920212223242526272829303132333435defmain():startTime = time.localtime()print(程序開始時間:, time.strftime(%Y-%m-%d %H:%M:%S, startTime)startPerfCounter = time
22、.perf_counter() otherLoop1()otherLoop1PerfCounter = time.perf_counter() otherLoop1Perf = otherLoop1PerfCounter - startPerfCounter coreLoop()coreLoopPerfCounter = time.perf_counter()coreLoopPerf = coreLoopPerfCounter - otherLoop1PerfCounter otherLoop2()otherLoop2PerfCounter = time.perf_counter() othe
23、rLoop2Perf = otherLoop2PerfCounter - coreLoopPerfCounter endPerfCounter = time.perf_counter()totalPerf = endPerfCounter - startPerfCounterendTime = time.localtime()print(模塊1運行時間是:秒.format(otherLoop1Perf) print(核心模塊運行時間是:秒.format(coreLoopPerf) print(模塊2運行時間是:秒.format(otherLoop2Perf) print(程序運行總時間是:秒.
24、format(totalPerf)print(程序結(jié)束時間:, time.strftime(%Y-%m-%d %H:%M:%S, endTime)main()time庫與程序計時程序運行的輸出效果如下程序開始時間: 2017-12-26 13:46:39模塊1運行時間是:0.20003105182731706秒核心模塊運行時間是:5.987101639820927秒模塊2運行時間是:0.40018931343066555秒程序運行總時間是:6.587323585324574秒程序結(jié)束時間: 2017-12-26 13:46:45實例解析:雪景藝術(shù)繪圖雪景藝術(shù)繪圖turtle圖形藝術(shù),指利用tu
25、rtle庫畫筆創(chuàng)造性繪制絢麗多彩藝術(shù)圖形的過程。turtle圖形藝術(shù)效果中隱含著很多隨機元素,如隨機顏色、尺寸、位置和數(shù)量等。在圖形 藝術(shù)繪制中需要引入隨機函數(shù)庫random。常 用randint()函數(shù),生成指定范圍內(nèi)的隨機數(shù),雪景藝術(shù)繪圖“雪景”圖形藝術(shù)背景為黑色,分為上下兩個區(qū)域,上方是漫天彩色雪花,下方是由遠 及近的灰色橫線漸變。該圖運用了隨機元素, 如雪花位置、顏色、大小、花瓣數(shù)目、地面 灰色線條長度、線條位置等,需要使用turtle 庫和random庫。雪景藝術(shù)繪圖繪制分為三個步驟構(gòu)建圖的背景繪制雪花效果繪制雪地效果1.2.3.雪景藝術(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、位置坐標(biāo)x、y、線段長度均通過randint()
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年商品車物流信息化合作協(xié)議
- 2024年房屋買賣合同(試用版)
- 2024年新型節(jié)能材料研發(fā)合同
- (合同知識)網(wǎng)站開發(fā)合同書酷博網(wǎng)站開發(fā)合同書
- 2024年文化藝術(shù)品電商交易平臺建設(shè)合同
- 2024年擠塑板購銷年度合同
- 2024年新式個人二手車交易合同
- 2024年軟件及服務(wù)項目綜合評估報告
- 2024年新排污標(biāo)準(zhǔn):長期技術(shù)支持與服務(wù)合同
- 2024年技術(shù)開發(fā)合同(標(biāo)的:軟件系統(tǒng)開發(fā))
- HY/T 214-2017紅樹林植被恢復(fù)技術(shù)指南
- GB/T 4960.3-2010核科學(xué)技術(shù)術(shù)語第3部分:核燃料與核燃料循環(huán)
- GB/T 28655-2012業(yè)氟化氫銨
- 年度計量器具周期檢定計劃
- VDA6.3過程審核員培訓(xùn)考核試卷及答案(一)
- 電阻焊原理及工藝(壓力焊技術(shù)知識全案)
- 工程制圖 第4章 截交線和相貫線
- 新高考高中家長會課件
- 城市介紹(重慶)課件
- 六年級上冊數(shù)學(xué)總復(fù)習(xí)看圖列式計算題
- 2022版義務(wù)教育(科學(xué))課程標(biāo)準(zhǔn)(含2022年新增和修訂部分)
評論
0/150
提交評論