Python基礎(chǔ)教程(第3版)- 課件 第6章 模塊_第1頁(yè)
Python基礎(chǔ)教程(第3版)- 課件 第6章 模塊_第2頁(yè)
Python基礎(chǔ)教程(第3版)- 課件 第6章 模塊_第3頁(yè)
Python基礎(chǔ)教程(第3版)- 課件 第6章 模塊_第4頁(yè)
Python基礎(chǔ)教程(第3版)- 課件 第6章 模塊_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python程序設(shè)計(jì)授課教師:第6章模塊課程描述模塊是Python語(yǔ)言的一個(gè)重要概念,它可以將函數(shù)按功能劃分到一起,以便日后使用或共享給他人。用戶可以使用Python標(biāo)準(zhǔn)庫(kù)中的模塊,也可以下載和使用第三方模塊。本章將介紹如何使用Python標(biāo)準(zhǔn)庫(kù)中的模塊,如何自定義模塊,以及如何下載和使用第三方模塊。本章知識(shí)點(diǎn)6.1Python標(biāo)準(zhǔn)庫(kù)中的常用模塊6.2自定義和使用模塊6.3第三方模塊的使用6.1Python標(biāo)準(zhǔn)庫(kù)中的常用模塊Python標(biāo)準(zhǔn)庫(kù)是Python自帶的開(kāi)發(fā)包,是Python的組成部分,它會(huì)隨Python解釋器一起安裝在系統(tǒng)中。Python標(biāo)準(zhǔn)庫(kù)中包含許多模塊,本節(jié)將介紹其中一些常用模塊的使用方法。導(dǎo)入模塊方法一:在使用模塊之前首先需要導(dǎo)入模塊。使用import語(yǔ)句可以導(dǎo)入模塊,語(yǔ)句如下:import模塊名導(dǎo)入后,對(duì)模塊中的函數(shù)采用模塊名.函數(shù)名()的形式使用。導(dǎo)入模塊方法二:可以使用from-import方法導(dǎo)入模塊,語(yǔ)法如下:from模塊名import函數(shù)名導(dǎo)入后,對(duì)模塊中的函數(shù)可以直接采用函數(shù)名()的形式使用。導(dǎo)入模塊方法三:可以使用import-as方法導(dǎo)入模塊,語(yǔ)法如下:import模塊名as別名導(dǎo)入后,調(diào)用該模塊的函數(shù)時(shí)需要使用設(shè)置的別名,即通過(guò)別名來(lái)調(diào)用模塊中的函數(shù),語(yǔ)句如下:別名.函數(shù)名(參數(shù)列表)這種方法主要目的是簡(jiǎn)化代碼的書(shū)寫(xiě)。6.1Python標(biāo)準(zhǔn)庫(kù)中的常用模塊6.1.1math模塊6.1.2random模塊6.1.3sys模塊6.1.4platform模塊6.1.5time模塊6.1.1math模塊math模塊為基礎(chǔ)數(shù)學(xué)處理模塊,可以實(shí)現(xiàn)基本的數(shù)學(xué)運(yùn)算。首先需要使用import語(yǔ)句導(dǎo)入模塊,語(yǔ)句如下:importmathmath模塊定義了e(自然對(duì)數(shù))和pi(π)兩個(gè)常量?!纠}】打印e(自然對(duì)數(shù))和pi(π)的值打印e(自然對(duì)數(shù))和pi(π)的值。importmathprint(math.e)print(math.pi)運(yùn)行結(jié)果如下:2.7182818284590453.141592653589793math模塊中的常用函數(shù)方法原型具體說(shuō)明ceilmath.ceil(x)返回大于等于x的最小整數(shù)fabsmath.fabs(x)返回x的絕對(duì)值floormath.floor(x)返回小于等于x的最大整數(shù)powmath.pow(x,y)返回x的y次冪sqrtmath.sqrt(x)返回

truncmath.trunc(x)返回x的整數(shù)部分【例題】使用math模塊的例子importmathprint(math.ceil(3.4))print(math.fabs(-3))print(math.floor(3.4))print(math.sqrt(4))print(math.trunc(3.4))運(yùn)行結(jié)果如下:43.032.036.1.2random模塊方法原型具體說(shuō)明randomrandom.random()生成一個(gè)0到1之間的隨機(jī)浮點(diǎn)數(shù):0<=n<1.0uniformrandom.uniform(a,b)用于生成一個(gè)指定范圍內(nèi)的隨機(jī)浮點(diǎn)數(shù),兩個(gè)參數(shù)其中一個(gè)是上限,另一個(gè)是下限。如果a<b,則生成的隨機(jī)數(shù)n滿足a<=n<=b。如果a>b,則b<=n<=arandintrandom.randint(a,b)用于生成一個(gè)指定范圍內(nèi)的整數(shù)。其中參數(shù)a是下限,參數(shù)b是上限,生成的隨機(jī)數(shù)n:a<=n<=brandrangerandom.randrange([start],stop[,step])從[start,stop)范圍內(nèi),按指定步長(zhǎng)step遞增的集合中獲取一個(gè)隨機(jī)數(shù)。start默認(rèn)值為0,step默認(rèn)值為1。如:random.randrange(1,10,2),結(jié)果相當(dāng)于從[1,3,5,7,9]序列中獲取一個(gè)隨機(jī)數(shù)choicerandom.choice(sequence)從序列中獲取一個(gè)隨機(jī)元素。參數(shù)sequence表示一個(gè)有序類(lèi)型,可以是列表、元組或字符串shufflerandom.shuffle(x)用于將一個(gè)列表中的元素打亂。x是一個(gè)列表samplerandom.sample(sequence,k)從指定序列sequence中隨機(jī)獲取k個(gè)元素,以列表類(lèi)型返回。原有序列不會(huì)被修改【例題】隨機(jī)生成一個(gè)0~100的整數(shù)。importrandomprint(random.randint(0,100))【例題】隨機(jī)生成一個(gè)1~100間的偶數(shù)。importrandomprint(random.randrange(2,101,2))【例題】隨機(jī)生成一個(gè)0~1間的浮點(diǎn)數(shù)。importrandomprint(random.random())【例題】從指定字符集合里隨機(jī)獲取一個(gè)字符。importrandomprint(random.choice('jklhgy&#&*()%^@'))【例題】將一個(gè)列表中的元素打亂。importrandomlist=[1,2,3,4,5,6]random.shuffle(list)print(list)【例題】從指定序列中隨機(jī)獲取指定個(gè)數(shù)的元素。importrandomlist=[1,2,3,4,5,6]print(random.sample(list,3))6.1.3sys模塊sys模塊是Python標(biāo)準(zhǔn)庫(kù)中最常用的模塊之一。通過(guò)它可以獲取命令行參數(shù),從而實(shí)現(xiàn)從程序外部向程序傳遞參數(shù)的功能;也可以獲取程序路徑和當(dāng)前系統(tǒng)平臺(tái)等信息。1.獲取當(dāng)前的操作系統(tǒng)平臺(tái)Python是支持跨平臺(tái)的語(yǔ)言。因此,在程序中經(jīng)常需要獲取當(dāng)前的操作系統(tǒng)平臺(tái)。以便針對(duì)不同的操作系統(tǒng)編寫(xiě)對(duì)應(yīng)的程序。使用變量sys.platform可以獲取當(dāng)前的操作系統(tǒng)平臺(tái)?!纠}】使用變量sys.platform打印當(dāng)前的操作系統(tǒng)平臺(tái)。importsysprint(sys.platform)sys.platform只返回操作系統(tǒng)的平臺(tái)信息,并不包含操作系統(tǒng)的具體信息。2.使用命令行參數(shù)所謂命令行參數(shù)是指在運(yùn)行程序時(shí)命令行中給定的參數(shù)。使用sys模塊的argv序列可以在Python中獲取命令行參數(shù)。sys.argv[0]是獲取當(dāng)前運(yùn)行的腳本文件的文件名,sys.argv[1]是獲取第1個(gè)命令行參數(shù),sys.argv[2]是獲取第2個(gè)命令行參數(shù),以此類(lèi)推。【例題】打印命令行參數(shù)。importsysprint("共有",len(sys.argv),"個(gè)命令行參數(shù)。")foriinrange(0,len(sys.argv)): print("第",i+1,"個(gè)參數(shù)為:",sys.argv[i])3.退出應(yīng)用程序使用sys.exit()函數(shù)可以退出應(yīng)用程序。語(yǔ)法如下:sys.exit(n)n=0時(shí),程序無(wú)錯(cuò)誤退出;n=1時(shí),程序有錯(cuò)誤退出?!纠}】使用sys.exit()函數(shù)的例子。importsysiflen(sys.argv)<2: print("請(qǐng)使用命令行參數(shù)") sys.exit(1)foriinrange(0,len(sys.argv)): print("第",i+1,"個(gè)參數(shù)為:",sys.argv[i])4.字符編碼使用sys.getdefaultencoding()函數(shù)獲取系統(tǒng)當(dāng)前編碼?!纠}】打印系統(tǒng)當(dāng)前編碼。importsysprint(sys.getdefaultencoding())5.搜索模塊的路徑當(dāng)使用import語(yǔ)句導(dǎo)入模塊時(shí),Python會(huì)自動(dòng)搜索模塊文件,可以通過(guò)sys.path獲取搜索模塊的路徑?!纠}】打印Python搜索模塊的路徑。importsysprint(sys.path)sys.path實(shí)際上是個(gè)列表,第1個(gè)元素是當(dāng)前程序所在的目錄。6.1.4platform模塊1.獲取操作系統(tǒng)名稱(chēng)及版本號(hào)使用platform.platform()函數(shù)可以獲取操作系統(tǒng)名稱(chēng)及版本號(hào)信息?!纠}】打印當(dāng)前操作系統(tǒng)名稱(chēng)及版本號(hào)。importplatformprint(platform.platform())2.獲取操作系統(tǒng)類(lèi)型使用platform.system()函數(shù)可以獲取操作系統(tǒng)類(lèi)型?!纠}】打印當(dāng)前操作系統(tǒng)類(lèi)型。importplatformprint(platform.system())3.獲取操作系統(tǒng)版本信息使用platform.version()函數(shù)可以獲取操作系統(tǒng)的版本信息?!纠}】打印當(dāng)前操作系統(tǒng)的版本信息。importplatformprint(platform.version())4.獲取計(jì)算機(jī)類(lèi)型信息使用platform.machine()函數(shù)可以獲取計(jì)算機(jī)類(lèi)型信息?!纠}】打印當(dāng)前計(jì)算機(jī)類(lèi)型信息。importplatformprint(platform.machine())5.獲取計(jì)算機(jī)的網(wǎng)絡(luò)名稱(chēng)使用platform.node()函數(shù)可以獲取計(jì)算機(jī)的網(wǎng)絡(luò)名稱(chēng)?!纠}】打印當(dāng)前計(jì)算機(jī)的網(wǎng)絡(luò)名稱(chēng)。importplatformprint(platform.node())6.獲取計(jì)算機(jī)的處理器信息使用cessor()函數(shù)可以獲取計(jì)算機(jī)的處理器信息?!纠}】打印當(dāng)前計(jì)算機(jī)的處理器信息。importplatformprint(cessor())7.獲取計(jì)算機(jī)的綜合信息使用platform.uname()函數(shù)可以獲取計(jì)算機(jī)的以上所有綜合信息。【例題】打印當(dāng)前計(jì)算機(jī)的綜合信息。importplatformprint(platform.uname())8.獲取Python版本信息使用platform.python_build()函數(shù)可以獲取Python完整版本信息,包括Python的主版本、編譯版本號(hào)和編譯時(shí)間等信息?!纠}】打印Python版本信息。importplatformprint(platform.python_build())8.獲取Python版本信息使用platform.python_version()函數(shù)可以獲取Python的主版本信息。使用platform.python_version_tuple()函數(shù)可以以元組格式返回Python的主版本信息?!纠}】打印Python的主版本信息。importplatformprint(platform.python_version())print(platform.python_version_tuple())9.獲取Python解釋器信息使用platform.python_compiler()函數(shù)可以獲取Python的解釋器信息?!纠}】打印Python的解釋器信息。importplatformprint(platform.python_compiler())6.1.5time模塊time模塊可以提供各種操作時(shí)間的函數(shù)。1.時(shí)間的表示方式計(jì)算機(jī)可以使用時(shí)間戳、格式化時(shí)間的字符串和struct_time元組三種方式表示時(shí)間。1.時(shí)間的表示方式Unix時(shí)間戳(Unixtimestamp),或稱(chēng)Unix時(shí)間(Unixtime)、POSIX時(shí)間(POSIXtime),是一種時(shí)間表示方式,定義為從格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)。Unix時(shí)間戳不僅被使用在Unix系統(tǒng)、類(lèi)Unix系統(tǒng)中(比如Linux系統(tǒng)),也在許多其他操作系統(tǒng)中被廣泛采用。1.時(shí)間的表示方式struct_time元組包含9個(gè)元素:year,4位的年份,例如2015month,月份,1~12的整數(shù)day,日期,1~31的整數(shù)hours,小時(shí),0~23的整數(shù)minutes,分鐘,0~59的整數(shù)seconds,秒鐘,0~59的整數(shù)weekday,星期,0~6的整數(shù),星期一為0Julianday,一年有幾天,1~366的整數(shù)DST,表示是否為夏令時(shí)。如果DST等于0,則給定的時(shí)間屬于標(biāo)準(zhǔn)時(shí)區(qū);如果DST等于1,則給定的時(shí)間屬于夏令時(shí)時(shí)區(qū)2.獲取當(dāng)前時(shí)間調(diào)用time.time()函數(shù)可以獲取當(dāng)前時(shí)間的時(shí)間戳?!纠}】使用time.time()函數(shù)的例子。importtimeprint(time.time())時(shí)間戳只是一個(gè)大的浮點(diǎn)數(shù),很難看得懂具體的時(shí)間。3.將一個(gè)時(shí)間戳轉(zhuǎn)換成一個(gè)當(dāng)前時(shí)區(qū)的struct_time調(diào)用time.localtime()函數(shù)可以將一個(gè)時(shí)間戳轉(zhuǎn)換成一個(gè)當(dāng)前時(shí)區(qū)的struct_time【例題】使用time.localtime()函數(shù)的例子。importtimeprint(time.localtime(time.time()))此時(shí)顯示的結(jié)果與人們?nèi)粘5牧?xí)慣還是有所不同。4.格式化輸出struct_time時(shí)間調(diào)用time.strftime()函數(shù)可以按照指定的格式輸出struct_time時(shí)間,具體方法如下:time.strftime(格式字符串,struct_time時(shí)間)4.格式化輸出struct_time時(shí)間格式字符串中可以使用的日期和時(shí)間符號(hào)如下:%y兩位數(shù)的年份表示(00-99)%Y四位數(shù)的年份表示(0000-9999)%m月份(01-12)%d月內(nèi)中的一天(01-31)%H24小時(shí)制小時(shí)數(shù)(0-23)%I12小時(shí)制小時(shí)數(shù)(01-12)%M分鐘數(shù)(00-59)%S秒(00-59)%a本地簡(jiǎn)化星期名稱(chēng)%A本地完整星期名稱(chēng)4.格式化輸出struct_time時(shí)間%b本地簡(jiǎn)化的月份名稱(chēng)%B本地完整的月份名稱(chēng)%c本地相應(yīng)的日期表示和時(shí)間表示%j年內(nèi)的一天(001-366)%p本地A.M.或P.M.%U一年中的星期數(shù)(00-53),星期天為星期的開(kāi)始%w星期(0-6),星期天為星期的開(kāi)始%W一年中的星期數(shù)(00-53),星期一為星期的開(kāi)始%x本地相應(yīng)的日期表示%X本地相應(yīng)的時(shí)間表示%Z當(dāng)前時(shí)區(qū)的名稱(chēng)%%%號(hào)本身【例題】使用time.strftime()函數(shù)的例子。importtimeprint(time.strftime('%Y-%m-%d',time.localtime(time.time())))5.直接獲取當(dāng)前時(shí)間的字符串調(diào)用time.ctime()函數(shù)可以返回當(dāng)前時(shí)間的字符串?!纠}】使用time.ctime()函數(shù)的例子。importtimeprint(time.ctime())6.2自定義和使用模塊6.2.1創(chuàng)建自定義模塊6.2.2導(dǎo)入模塊6.2.1創(chuàng)建自定義模塊可以把函數(shù)組織到模塊中。在其他程序中可以引用模塊中定義的函數(shù)。這樣可以使程序具有良好的結(jié)構(gòu),增加代碼的重用性。模塊是一個(gè).py文件,其中包含函數(shù)的定義?!纠}】創(chuàng)建一個(gè)模塊mymodule.py,其中包含2個(gè)函數(shù)PrintString()和sum(),代碼如下:defPrintString(str):print(str)defsum(num1,num2):print(num1+num2)6.2.2導(dǎo)入模塊【例題】假定上一例題中創(chuàng)建的模塊mymodule.py保存在與本例題(6-30.py)同一目錄下,引用其中包含的函數(shù)PrintString()和sum(),代碼如下:importmymodule#導(dǎo)入mymodule模塊mymodule.PrintString("HelloPython")#調(diào)用PrintString()函數(shù)mymodule.sum(1,2)#調(diào)用sum()函數(shù)運(yùn)行結(jié)果如下:HelloPython36.3第三方模塊的使用6.3.1第三方模塊的使用6.3.2jieba庫(kù)的使用6.3.3turtle庫(kù)的使用6.3.4requests庫(kù)的使用6.3.1第三方模塊的使用在進(jìn)行Python程序開(kāi)發(fā)時(shí),除了可以使用Python內(nèi)置的標(biāo)準(zhǔn)模塊外,還有很多第三方模塊可以使用。這些第三方模塊可以在Python官方推出的網(wǎng)站中下載(/)。第三方模塊需要先下載并安裝,然后就可以像使用標(biāo)準(zhǔn)模塊一樣導(dǎo)入并使用了。下載和使用第三方模塊可以使用Python提供的pip命令實(shí)現(xiàn)。jieba是Python中一個(gè)重要的第三方中文分詞函數(shù)庫(kù)。importjiebaprint(jieba.lcut("中華人民共和國(guó)是一個(gè)偉大的國(guó)家"))['中華人民共和國(guó)','是','一個(gè)','偉大','的','國(guó)家']jieba庫(kù)是第三方庫(kù),不是Python安裝包自帶的,需要通過(guò)pip指令安裝。:\>pipinstalljieba#或者pip3installjiebajieba庫(kù)的概述精確模式:將句子最精確的切開(kāi),適合文本分析。全模式:將句子中所有可以成詞的詞語(yǔ)都掃描出來(lái),速度非??欤遣荒芟缌x。搜索引擎模式:在精確模式的基礎(chǔ)下,對(duì)長(zhǎng)詞再次切分,提高召回率,適合用于搜素引擎分詞。jieba庫(kù)支持的3種分詞模式函數(shù)描述jieba.cut(s)精確模式,返回一個(gè)可迭代的數(shù)據(jù)類(lèi)型jieba.cut(s,cut_all=True)全模式,輸出文本s中所有可能單詞jieba.cut_for_search(s)搜索引擎模式,適合搜索引擎建立索引的分詞結(jié)果jieba.lcut(s)精確模式,返回一個(gè)列表類(lèi)型,建議使用jieba.lcut(s,cut_all=True)全模式,返回一個(gè)列表類(lèi)型,建議使用jieba.lcut_for_search(s)搜索引擎模式,返回一個(gè)列表類(lèi)型,建議使用jieba庫(kù)解析【例題】分別采用精確模式、全模式和搜索引擎模式對(duì)詞語(yǔ)“這個(gè)平臺(tái)售賣(mài)的商品質(zhì)量好且價(jià)格優(yōu)惠”進(jìn)行分詞?!纠}】精確模式實(shí)現(xiàn)分詞功能的代碼如下:importjiebaprint(jieba.lcut("這個(gè)平臺(tái)售賣(mài)的商品質(zhì)量好且價(jià)格優(yōu)惠"))運(yùn)行結(jié)果如下:['這個(gè)','平臺(tái)','售賣(mài)','的','商品質(zhì)量','好且','價(jià)格','優(yōu)惠']【例題】全模式實(shí)現(xiàn)分詞功能的代碼如下:importjiebaprint(jieba.lcut("這個(gè)平臺(tái)售賣(mài)的商品質(zhì)量好且價(jià)格優(yōu)惠",cut_all=True))運(yùn)行結(jié)果如下:['這個(gè)','平臺(tái)','售賣(mài)','的','商品','商品質(zhì)量','品質(zhì)','質(zhì)量','好','且','價(jià)格','優(yōu)惠']【例題】搜索引擎模式實(shí)現(xiàn)分詞功能的代碼如下:importjiebaprint(jieba.lcut_for_search("這個(gè)平臺(tái)售賣(mài)的商品質(zhì)量好且價(jià)格優(yōu)惠"))運(yùn)行結(jié)果如下:['這個(gè)','平臺(tái)','售賣(mài)','的','商品','品質(zhì)','質(zhì)量','商品質(zhì)量','好且','價(jià)格','優(yōu)惠']

6.3.3turtle庫(kù)的使用

turtle庫(kù)是Python語(yǔ)言中一個(gè)很流行的繪制圖像的函數(shù)庫(kù)。使用turtle庫(kù),需要有這樣一個(gè)概念:想象一個(gè)小烏龜,在一個(gè)橫軸為x、縱軸為y的坐標(biāo)系原點(diǎn),(0,0)位置開(kāi)始。它根據(jù)一組函數(shù)指令的控制,在這個(gè)平面坐標(biāo)系中移動(dòng),從而在它爬行的路徑上繪制了圖形。

6.3.3turtle庫(kù)的使用

turtle繪圖坐標(biāo)系如圖所示,圖的中間(0,0)坐標(biāo)處為小海龜,小海龜?shù)念^朝向前進(jìn)方向。turtle庫(kù)中的常用函數(shù)函數(shù)原型具體說(shuō)明turtle.setup(width,height,startx,starty)設(shè)置主窗體的大小和位置。參數(shù)width和height表示啟動(dòng)窗口的寬度和高度。參數(shù)startx和starty表示窗口啟動(dòng)時(shí),窗口左上角在屏幕中的坐標(biāo)位置(窗口左上角的x坐標(biāo)和y坐標(biāo))turtle.penup()抬起畫(huà)筆,之后移動(dòng)畫(huà)筆不繪制形狀。與turtle.pendown()函數(shù)是一組turtle.pendown()落下畫(huà)筆,之后移動(dòng)畫(huà)筆將繪制形狀。與turtle.penup()函數(shù)是一組turtle.pensize(width)設(shè)置畫(huà)筆寬度。參數(shù)width是設(shè)置的畫(huà)筆線條寬度,如果為None或者為空,則函數(shù)返回當(dāng)前畫(huà)筆寬度turtle.pencolor(colorstring)設(shè)置畫(huà)筆顏色,無(wú)參數(shù)時(shí)返回當(dāng)前畫(huà)筆顏色。函數(shù)參數(shù)有兩種形式:①turtle.pencolor(colorstring),colorstring表示顏色的字符串,例如“red”、“blue”等;②turtle.pencolor((r,g,b)),(r,g,b)表示顏色對(duì)應(yīng)的RGB數(shù)值,例如(51,204,140)等turtle庫(kù)中的常用函數(shù)函數(shù)原型具體說(shuō)明turtle.fd(distance)向小海龜當(dāng)前行進(jìn)方向前進(jìn)distance距離。參數(shù)distance為行進(jìn)距離的像素值,當(dāng)值為負(fù)數(shù)時(shí),表示向相反方向前進(jìn)turtle.forward(distance)向小海龜當(dāng)前行進(jìn)方向前進(jìn)distance距離。參數(shù)distance為行進(jìn)距離的像素值,當(dāng)值為負(fù)數(shù)時(shí),表示向相反方向前進(jìn)turtle.backward(distance)向小海龜當(dāng)前行進(jìn)的相反方向前進(jìn)distance距離。參數(shù)distance為行進(jìn)距離的像素值,當(dāng)值為負(fù)數(shù)時(shí),表示向相反方向前進(jìn)turtle.seth(to_angle)通過(guò)設(shè)置絕對(duì)角度值改變畫(huà)筆的行進(jìn)方向。參數(shù)to_angle為角度的整數(shù)值。turtle庫(kù)的角度坐標(biāo)體系如圖6-2所示turtle庫(kù)中的常用函數(shù)函數(shù)原型具體說(shuō)明turtle.circle(radius,extent=None)?根據(jù)半徑radius繪制extent角度的一個(gè)弧形。參數(shù)radius為圓的半徑,當(dāng)radius值為正數(shù)時(shí),圓心在當(dāng)前位置左側(cè);當(dāng)radius值為負(fù)數(shù)時(shí),圓心在當(dāng)前位置右側(cè)。?參數(shù)extent為可選參數(shù),表示繪制的弧形角度,當(dāng)無(wú)該參數(shù)或參數(shù)為None時(shí),繪制整個(gè)圓形(相當(dāng)于360度);當(dāng)extent的值為正數(shù)時(shí),順小海龜當(dāng)前方向繪制弧形;當(dāng)extent的值為負(fù)數(shù)時(shí),逆小海龜當(dāng)前方向繪制弧形。turtle.circle()函數(shù)的繪圖模式如圖6-3所示turtle.goto(x,y)讓處于任何位置的小海龜移動(dòng)到某一個(gè)坐標(biāo)的位置。參數(shù)x和y表示坐標(biāo)位置turtle.left(angle)?控制小海龜向左旋轉(zhuǎn)指定的角度。參數(shù)angle?是旋轉(zhuǎn)的角度值turtle.right(angle)控制小海龜向右旋轉(zhuǎn)指定的角度。參數(shù)angle?是旋轉(zhuǎn)的角度值

turtle庫(kù)的角度坐標(biāo)體系

turtle.circle()函數(shù)的繪圖模式【例題】繪制如圖所示的蟒蛇。要求:程序代碼啟動(dòng)一個(gè)1300像素寬、800像素高的窗口,該窗口的左上角是屏幕的左上角?!纠}】importturtle#引入turtle庫(kù)(繪制圖像的函數(shù)庫(kù))defdrawSnake(rad,angle,len,neckrad):foriinrange(len):#循環(huán)5次繪制5段蟒蛇身體

turtle.circle(rad,angle)#40像素為半徑,繪制80度的弧線turtle.circle(-rad,angle)#反向40像素為半徑,繪制80度的弧線

turtle.circle(rad,angle/2)#40像素為半徑,繪制80/2度的弧線作為脖子

turtle.fd(rad)#向前繪制40像素直線,表示向前直線爬行移動(dòng),作為脖子的直線部分

turtle.circle(neckrad+1,180)#蛇頭轉(zhuǎn)向,弧度180度表示繪制半圓

turtle.fd(rad*2/

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論