




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第8章模塊《Python程序設計任務驅動教程》學習目標/Target了解模塊,能夠說出模塊的概念以及分類
掌握模塊的導入方式,能夠通過import和from...import...語句導入模塊
熟悉模塊的變量,能夠歸納變量__all__和__name__的作用
掌握random模塊的使用,能夠熟練使用random模塊生成各種各樣的隨機數(shù)
掌握time模塊的使用,能夠熟練使用time模塊處理時間學習目標/Target
掌握turtle模塊的使用,能夠熟練使用turtle模塊繪制要求的圖形
熟悉第三方模塊的安裝方式,能夠熟練使用pip工具安裝第三方模塊
掌握jieba模塊的使用,能夠熟練使用jieba模塊對中文文本進行分詞
掌握wordcloud模塊的使用,能夠熟練使用wordcloud模塊制作詞云圖片章節(jié)概述/Summary在開發(fā)程序時,我們通常不會把程序的所有代碼寫在一個文件中,而是把實現(xiàn)各個特定功能的代碼放置在不同文件中,形成不同的獨立模塊。模塊是一種組織代碼的方式,這種方式不僅可以提高代碼的復用性,還可以提高開發(fā)人員的開發(fā)效率。本章將通過5個任務對模塊相關的知識進行詳細講解。目錄/Contents任務8-1驗證碼任務8-2高考倒計時器任務8-3畫奧運五環(huán)任務8-4《西游記》人物出場次數(shù)統(tǒng)計任務8-5制作詞云驗證碼任務8-1任務描述本任務要求編寫程序,運用random模塊的知識,實現(xiàn)生成六位驗證碼的功能。【任務目標】知識儲備了解模塊,能夠說出模塊的概念以及分類學習目標1.認識模塊知識儲備1.認識模塊一個擴展名為“.py”的文件稱為一個模塊,文件的名稱為模塊的名稱,通過在當前模塊中導入其他模塊,便可以使用被導入模塊中定義的內(nèi)容。知識儲備1.認識模塊Python標準庫中提供的一系列預先編寫好的模塊,不需要安裝,便可以直接導入程序供開發(fā)人員使用。內(nèi)置模塊非官方制作發(fā)布的、供給大眾使用的Python模塊,不能直接導入程序中,安裝成功方可導入并使用。第三方模塊開發(fā)人員自行編寫的、存放功能性代碼的“.py”文件。自定義模塊知識儲備掌握模塊的導入,能夠使用import或者from...import..導入模塊
學習目標2.模塊的導入知識儲備2.模塊的導入(1)使用import語句導入模塊import語句支持一次導入一個模塊,也支持一次導入多個模塊。importtime
#導入一個模塊importrandom,time
#導入多個模塊示例import模塊1,模塊2,...語法格式知識儲備2.模塊的導入(1)使用import語句導入模塊導入模塊以后,可以通過“.”使用模塊中的內(nèi)容,包括全局變量、函數(shù)或類。importtime#導入time模塊time.sleep(1)#調(diào)用time模塊的sleep()函數(shù)示例模塊名.變量名/函數(shù)名()/類名語法格式知識儲備2.模塊的導入(1)使用import語句導入模塊如果在開發(fā)過程中需要導入一些名稱較長的模塊,那么可使用as關鍵字為這些模塊起別名。importtimeast#導入time模塊,并給該模塊起別名為tt.sleep(1)#通過別名t調(diào)用sleep()函數(shù)示例import模塊名as別名語法格式知識儲備2.模塊的導入(2)使用from…import…語句導入模塊使用from…import…方式導入模塊之后,無需添加“模塊名.”前綴,可以像使用當前程序中的內(nèi)容一樣使用模塊中的內(nèi)容。fromtimeimportsleep,time#導入time模塊的sleep()和time()函數(shù)示例from模塊名import變量名/函數(shù)名/類名語法格式知識儲備2.模塊的導入(2)使用from…import…語句導入模塊如果希望一次性導入模塊中的全部內(nèi)容,可以將from...import...語句中import后面的內(nèi)容替換為通配符“*”。fromtimeimport*#導入time模塊中的全部內(nèi)容示例from模塊名import*語法格式知識儲備2.模塊的導入(2)使用from…import…語句導入模塊from…import…語句也支持為模塊或模塊中的內(nèi)容起別名fromtimeimportsleepassl#導入sleep()函數(shù),并起別名為slsl(1)#通過名稱sl調(diào)用函數(shù)示例from模塊名import變量名/函數(shù)名/類名as別名語法格式需要注意的是,雖然from...import...語句可以簡化模塊中內(nèi)容的使用方式,但可能會出現(xiàn)模塊中的變量名、函數(shù)名或類名與當前程序中的變量名、函數(shù)名或類名重名的問題。因此,相對而言使用import語句導入模塊更為安全。知識儲備熟悉模塊的變量,能夠歸納變量__all__和__name__的作用學習目標3.模塊的變量知識儲備3.模塊的變量(1)__all__變量Python模塊的開頭通常會定義一個__all__變量,該變量的值實際上是一個列表,列表中包含的元素決定了在使用from…import*語句導入模塊內(nèi)容時通配符*所包含的內(nèi)容。如果__all__中只包含模塊的部分內(nèi)容,那么from…import*語句只會將__all__中包含的部分內(nèi)容導入程序。知識儲備3.模塊的變量(1)__all__變量__all__=["add","subtract"]defadd(a,b):returna+bdefsubtract(a,b):returna–bdefmultiply(a,b):returna*bdefdivide(a,b):if(b):returna/belse:print("error")calc.py模塊fromcalcimport*print(add(2,3))print(subtract(2,3))print(multipty(2,3))print(divide(2,3))test.py模塊程序運行這兩行代碼會出現(xiàn)錯誤,說明無法訪問模塊的這兩個方法知識儲備3.模塊的變量(2)__name__變量大型項目通常由多名開發(fā)人員共同開發(fā),每名開發(fā)人員負責不同的模塊。為了保證代碼在整合項目后可以正常運行,開發(fā)人員通常會編寫一些測試代碼進行測試。然而,對整個項目而言測試代碼是無用的。為了避免項目執(zhí)行這些測試代碼,Python為模塊加入了__name__變量。知識儲備3.模塊的變量(2)__name__變量__name__變量通常與if條件語句一起使用,若模塊是當前運行的模塊,則__name__的值為__main__;若模塊被其他模塊導入,則__name__的值為模塊名。if__name__=="__main__":#__name__的值為__main__print(multiply(3,4))print(divide(3,4))示例知識儲備4.random模塊掌握random模塊的使用,能夠熟練使用random模塊生成各種各樣的隨機數(shù)學習目標知識儲備4.random模塊(1)random()函數(shù)random()函數(shù)用于返回[0.0,1.0)區(qū)間內(nèi)的一個隨機浮點數(shù)。importrandomresult=random.random()#隨機生成一個0.0~1.0之間的浮點數(shù)print(result)示例知識儲備4.random模塊(2)uniform()函數(shù)uniform()函數(shù)用于返回[a,b]區(qū)間內(nèi)的一個隨機浮點數(shù)N。如果a
<=
b,則生成的浮點數(shù)N的取值范圍為a<=N<=b;如果a>b,則生成的隨機浮點數(shù)N的取值范圍為b<=N<=a。importrandomnum_one=random.uniform(50,60)#隨機生成一個50~60之間的浮點數(shù)print(num_one)num_two=random.uniform(50,40)#隨機生成一個40~50之間的浮點數(shù)print(num_two)示例知識儲備4.random模塊(3)randint()函數(shù)randint()函數(shù)用于返回[a,b]區(qū)間內(nèi)的一個隨機整數(shù),a和b的取值必須為整數(shù),且a的值一定要小于b的值。importrandomresult=random.randint(1,8)#隨機生成一個1~8之間的整數(shù)print(result)示例知識儲備4.random模塊(4)randrange()函數(shù)randrange()函數(shù)用于返回指定遞增基數(shù)集合的一個隨機數(shù)。importrandomnum=random.randrange(10,100,10)print(num)示例randrange(start,
stop[,
step])語法格式start參數(shù):表示范圍的起始值,包含在范圍內(nèi)。stop參數(shù):表示范圍的結束值,不包含在范圍內(nèi)。step參數(shù):表示遞增基數(shù),默認值為1。知識儲備4.random模塊(5)choice()函數(shù)choice()函數(shù)用于從指定序列(包括字符串、列表、元組等)中隨機返回一個元素。name_li=["張三","李四","王五","趙六"]print(random.choice(name_li))#隨機選擇name_li中的一個元素示例任務分析指定數(shù)字1、2、3來指代大寫字母、小寫字母、數(shù)字這幾種字符類型。數(shù)字類型對應的數(shù)值范圍為0~9,大寫字母對應的ACSII碼范圍為65~90,小寫字母對應的ACSII碼范圍為97~122。隨機類型和隨機字符的操作都需要用到隨機數(shù)模塊random,由于隨機類型和隨機字符的取值范圍都是整數(shù),所以這兩個操作都需要通過randint()函數(shù)實現(xiàn)。六位驗證碼的生成是一個獨立的功能,這里可以使用函數(shù)進行封裝。實現(xiàn)思路任務實現(xiàn)1.創(chuàng)建項目Chapter08及01_captcha.py文件。2.在01_captcha.py文件中編寫代碼。導入random模塊。定義一個隨機生成6位驗證碼的函數(shù)verifycode()。3.運行01_captcha.py文件。實現(xiàn)步驟高考倒計時器任務8-2任務描述本任務要求運用time模塊的知識編寫程序完成一個高考計時器,該計時器會接收用戶從鍵盤輸入的高考時間,并提示用戶距離高考時間剩余的天數(shù)?!救蝿漳繕恕?=============================XX年高考時間是XX年XX月XX日今天是XX年XX月XX日距離XX年高考還有XX天==============================知識儲備time模塊掌握time模塊的使用,能夠熟練使用time模塊處理時間學習目標知識儲備time模塊程序開發(fā)中根據(jù)時間選擇不同處理方式的場景非常多見,例如游戲的防沉迷系統(tǒng)、外賣平臺的店鋪營業(yè)狀態(tài)管理等。Python內(nèi)置了一些與時間處理相關的模塊,比如time、datetime以及calendar,其中time是最基礎的時間模塊。知識儲備time模塊(1)time()函數(shù)time()函數(shù)用于返回以浮點數(shù)表示的從世界標準時間1970年1月1日00:00:00開始到現(xiàn)在的總秒數(shù),也就是時間戳。importtimeprint(time.time())#獲取時間戳示例知識儲備time模塊(2)localtime()與gmtime()函數(shù)localtime()與gmtime()函數(shù)返回的所有的時間都是時間對象struct_time,該對象其實是一個元組對象,元組中共有9項元素。元素含義取值tm_year年4位數(shù)字tm_mon月1~12tm_mday日1~31tm_hour時0~23tm_min分0~59tm_sec秒0~61(60或61是閏秒)tm_wday一周的第幾日0~6(0為周一,依此類推)tm_yday一年的第幾日1~366tm_isdst夏令時1:是夏令時;0:非夏令時;-1:不確定各元素的含義與取值知識儲備time模塊無論是采用浮點數(shù)還是元組形式表示的時間,其實都不符合人們的認知習慣。人類日常接觸的表示時間的信息常見形式有“2008-02-2812:30:45”“12/31/200812:30:45”和“2008年12月31日12:30:45”。為了便于人們?nèi)ダ斫鈺r間數(shù)據(jù),Python提供了用于輸出格式化時間字符串的strftime()和asctime()函數(shù)。(3)strftime()和asctime()函數(shù)知識儲備time模塊(3)strftime()和asctime()函數(shù)strftime()函數(shù)會借助時間格式控制符來輸出格式化的時間字符串。strftime(format[,t])語法格式format:指代時間格式的字符串。t:struct_time對象,默認為當前時間。importtimeprint(time.strftime('%a,%d%b%Y%H:%M:%S'))#獲取格式化時間示例知識儲備time模塊(3)strftime()和asctime()函數(shù)常用的時間格式控制符時間格式控制符說明%Y四位數(shù)的年份,取值范圍為0001~9999%m月份(01~12)%d月中的一天%B本地完整的月份名稱,比如January%b本地簡化的月份名稱,比如Jan%a本地簡化的周日期知識儲備time模塊(3)strftime()和asctime()函數(shù)常用的時間格式控制符時間格式控制符說明%A本地完整周日期%H24小時制小時數(shù)(0~23)%l12小時制小時數(shù)(01~12)%p上下午,取值為AP或PM%M分鐘數(shù)(00~59)%S秒(00~59)知識儲備time模塊(3)strftime()和asctime()函數(shù)asctime()函數(shù)用于輸出格式化的時間字符串,但它只能將struct_time對象轉化為“SatJan1321:56:342018”形式。asctime([t])語法格式importtimeprint(time.asctime())gmtime=time.gmtime()print(time.asctime(gmtime))示例知識儲備time模塊(4)ctime()函數(shù)ctime()函數(shù)用于將一個時間戳轉換為“%a%b%d%H:%M:%S%Y”形式的時間字符串,若該函數(shù)未傳參數(shù),則默認將time.time()作為參數(shù)。importtimeprint(time.ctime())#將當前時間戳轉換成指定形式的時間字符串print(time.ctime(34.56))#將34.56轉換成指定形式的時間字符串
示例知識儲備time模塊(5)strptime()函數(shù)strptime()函數(shù)用于將格式化的時間字符串轉化為struct_time對象,該函數(shù)是strftime()函數(shù)的反向操作。importtimeprint(time.strptime('Sat,11Apr202011:54:42','%a,%d%b%Y%H:%M:%S'))print(time.strptime('11:54:42','%H:%M:%S'))示例strptime(string,format)語法格式string:表示格式化的時間字符串。format:表示時間字符串的格式。知識儲備time模塊(6)mktime()函數(shù)mktime()函數(shù)用于將struct_time對象轉化為以浮點數(shù)表示的時間戳,該函數(shù)是gmtime()函數(shù)和localtime()函數(shù)的反向操作。importtimestr_dt="2022-05-2717:43:54"time_struct=time.strptime(str_dt,"%Y-%m-%d%H:%M:%S")print(time_struct)timestamp=time.mktime(time_struct)#轉化成時間戳print(timestamp)示例mktime(t)語法格式任務分析獲取高考時間。獲取當天日期。計算高考時間與當天日期的時間差。生成高考倒計時器。實現(xiàn)思路任務實現(xiàn)1.創(chuàng)建項目Chapter08及02_countdown.py文件。2.在02_countdown.py文件中編寫代碼。導入time模塊,獲取用戶從鍵盤輸入的高考時間字符串,根據(jù)該字符串構建一個時間元組。獲取當天日期的時間戳,并將時間戳轉化成時間元組。把元組形式的高考時間和當天日期轉換成時間戳,計算兩者之間的時間差,并將時間差轉換成剩余天數(shù)。通過格式字符串生成高考倒計時器中的上分割線、下分割線和其他內(nèi)容。3.運行02_countdown.py文件。實現(xiàn)步驟畫奧運五環(huán)任務8-3任務描述奧運五環(huán)由5個大小相等的奧林匹克環(huán)套接組成,自左向右兩兩相互緊密交叉,形成上方三個圓環(huán)、下方兩個圓環(huán)的形狀,整個造形呈一個底部小的規(guī)則梯形。奧林匹克標志上方的三個圓環(huán)依次為藍色、黑色、紅色,下方兩個圓環(huán)為黃色、綠色,背景為白色。任務描述本案例要求編寫程序,使用turtle模塊畫一個奧運五環(huán)標志,最終效果如下圖所示?!救蝿漳繕恕咳蝿彰枋龃翱诤蛫W運五環(huán)圖形的具體要求如下。(1)窗口窗口占整個屏幕大小的一半,標題為奧運五環(huán)。(2)奧運五環(huán)圖形每個圓環(huán)的半徑為100像素,描邊粗細為20像素。藍環(huán)、黑環(huán)、紅環(huán)、黃環(huán)、綠環(huán)的顏色為#0081C8、#FCB131、#000000、#00A651、#EE334E。上面一排圓環(huán)位于同一水平線上。下面一排圓環(huán)位于同一水平線上,且穿插到上面兩圓環(huán)的中間位置。每一排圓環(huán)之間的間隙相等,均為50像素?!救蝿漳繕恕恐R儲備掌握創(chuàng)建窗口的方式,能夠熟練使用turtle模塊創(chuàng)建窗口學習目標1.使用turtle模塊創(chuàng)建窗口知識儲備1.使用turtle模塊創(chuàng)建窗口turtle(海龜)是Python內(nèi)置的一個標準模塊,它提供了繪制線、圓以及其他形狀的函數(shù),使用該模塊可以創(chuàng)建圖形窗口,在圖形窗口中通過簡單重復動作直觀地繪制界面與圖形。知識儲備1.使用turtle模塊創(chuàng)建窗口圖形窗口也稱為畫布(canvas)??刂婆_無法繪制圖形,使用turtle模塊繪制圖形化界面需要先使用setup()函數(shù)創(chuàng)建圖形窗口。setup(width,height,startx=None,starty=None)語法格式width、height:表示窗口寬度、高度,它們的取值可以是整數(shù)或小數(shù)。startx和starty:表示窗口在計算機屏幕上的橫坐標和縱坐標。參數(shù)startx、starty的取值可以為整數(shù)或None,當取值為整數(shù)時,分別表示圖形窗口左側、頂部與屏幕左側、頂部的距離,單位為像素;當取值為None時,窗口位于屏幕中心。知識儲備1.使用turtle模塊創(chuàng)建窗口#創(chuàng)建一個寬800、高600像素的圖形窗口turtle.setup(800,600)創(chuàng)建圖形窗口的示例需要說明的是,使用turtle模塊實現(xiàn)圖形化程序時setup()函數(shù)并不是必須的,如果程序中未調(diào)用setup()函數(shù),程序執(zhí)行時會生成一個默認窗口。知識儲備1.使用turtle模塊創(chuàng)建窗口調(diào)用turtle模塊的title()函數(shù)為窗口設置標題,如此每次打開的窗口左上角都會顯示指定的標題。在使用turtle模塊繪制圖形后應調(diào)用turtle模塊的done()函數(shù)聲明繪制結束,如此turtle的主循環(huán)會終止,但直到手動關閉圖形窗口時圖形窗口才會退出。知識儲備掌握設置畫筆的方式,能夠熟練使用turtle模塊的函數(shù)設置畫筆的屬性和狀態(tài)學習目標2.使用turtle模塊設置畫筆知識儲備2.使用turtle模塊設置畫筆畫筆屬性包括尺寸、顏色和移動速度。畫筆屬性畫筆狀態(tài)分為提起和放下兩種狀態(tài)。畫筆狀態(tài)知識儲備2.使用turtle模塊設置畫筆(1)畫筆屬性相關函數(shù)turtle模塊中用于設置畫筆屬性的函數(shù)主要有3個,分別是pensize()、speed()和color(),pensize()函數(shù)用于設置畫筆尺寸,speed()函數(shù)用于設置設置畫筆移動的速度,color()函數(shù)用于設置畫筆顏色。pensize(<width>) #設置畫筆尺寸speed(speed) #設置畫筆移動速度color(color) #設置畫筆顏色語法格式width:表示畫筆的尺寸,即畫筆繪制出線條的寬度。speed:表示畫筆移動的速度,該參數(shù)的取值范圍為[0,10]內(nèi)的整數(shù),整數(shù)越大,速度越快。color:表示畫筆的顏色。知識儲備2.使用turtle模塊設置畫筆(1)畫筆屬性相關函數(shù)color()函數(shù)的參數(shù)color支持多種形式的取值,包括字符串、RGB顏色(RGB整數(shù)值和RGB小數(shù)值)和十六進制顏色。顏色字符串RGB整數(shù)值RGB小數(shù)值十六進制白色white(255,255,255)(1,1,1)#FFFFFF黃色yellow(255,255,0)(1,1,0)#FFFF00洋紅magenta(255,0,255)(1,0,1)#FF00FF青色cyan(0,255,255)(0,1,1)#00FFFF藍色blue(0,0,255)(0,0,1)#0000FF黑色black(0,0,0)(0,0,0)#000000知識儲備2.使用turtle模塊設置畫筆(1)畫筆屬性相關函數(shù)color()函數(shù)的參數(shù)color支持多種形式的取值,包括字符串、RGB顏色(RGB整數(shù)值和RGB小數(shù)值)和十六進制顏色。顏色字符串RGB整數(shù)值RGB小數(shù)值十六進制海貝色seashell(255,245,238)(1,0.96,0.93)#FFF5EE金色gold(255,215,0)(1,0.84.0)#FFD700粉紅色pink(255,192,203)(1,0.75,0.80)#FFC0CB棕色brown(165,42,42)(0.65,0.16,0.16)#A22A2A紫色purple(160,32,240)(0.63,0.13,0.94)#A020F0番茄色tomato(255,99,71)(1,0.39,0.28)#FF6347知識儲備2.使用turtle模塊設置畫筆(1)畫筆屬性相關函數(shù)字符串、RGB整數(shù)值、RGB小數(shù)值、十六進制表示的顏色都可以直接傳入color()函數(shù)的color參數(shù),但使用RGB顏色之前,需要先使用colormode()函數(shù)設置顏色模式。colormode()函數(shù)需要接收一個cmode參數(shù),該參數(shù)支持兩種取值:1.0或255,其中1.0表示RGB顏色值位于0.0~1.0之間,255表示RGB顏色值位于0~255之間。importturtleturtle.color('pink')turtle.color('#A22A2A')示例turtle.colormode(1.0)turtle.color((1,1,0))turtle.colormode(255)
turtle.color((165,42,42))turtle.done()知識儲備2.使用turtle模塊設置畫筆(2)畫筆狀態(tài)相關函數(shù)turtle模塊中的畫筆默認為放下狀態(tài)。我們使用penup()和pendown()函數(shù)可以修改畫筆狀態(tài),其中penup()函數(shù)用于提起畫筆,pendown()函數(shù)用于放下畫筆。importturtleturtle.penup() #提起畫筆turtle.pendown() #放下畫筆turtle.done()示例turtle模塊中為penup()和pendown()函數(shù)定義了別名,penup()函數(shù)的別名為pu(),pendown()函數(shù)的別名為pd()。知識儲備了解turtle的坐標體系,能夠說出turtle的坐標體系的特點掌握繪制圖形的方式,能夠熟練通過turtle模塊的函數(shù)控制畫筆來繪制需要的圖形學習目標3.使用turtle模塊繪制圖形知識儲備3.使用turtle模塊繪制圖形在畫筆狀態(tài)為放下時,通過移動畫筆可以在畫布上繪制圖形。此時可以將畫筆想象成一只海龜(這也是turtle模塊名字的由來):海龜落在畫布上,它可以向前、向后、向左、向右移動,海龜爬動時在畫布上留下痕跡,痕跡即為所繪圖形。知識儲備3.使用turtle模塊繪制圖形turtle坐標體系以窗口中心為原點,右方為默認朝向,原點右側為x軸正方向,原點上方為y軸正方向。turtle的坐標體系知識儲備3.使用turtle模塊繪制圖形(1)移動控制函數(shù)移動控制函數(shù)包括forward()、backward()和goto()函數(shù),分別用于控制畫筆向前、向后或者向指定位置移動。forward(distance) #向前移動backward(distance) #向后移動goto(x,y=None) #向指定位置移動語法格式distance:用于指定畫筆移動的距離,單位為像素。x、y:表示目標位置的橫坐標和縱坐標。知識儲備3.使用turtle模塊繪制圖形(2)角度控制函數(shù)角度控制函數(shù)用于更改畫筆朝向,包括right()、left()和seth(),其中right()函數(shù)用于控制畫筆向右轉動,left()函數(shù)用于控制畫筆向左轉動,seth()函數(shù)用于控制畫筆轉動到指定方向。right(degree) #向右轉動left(degree) #向左轉動seth(angle) #轉動到某個方向語法格式
degree:用于指定畫筆向右與向左的角度。angle:用于設置畫筆在坐標系中的角度。知識儲備3.使用turtle模塊繪制圖形(2)角度控制函數(shù)函數(shù)seth()的參數(shù)angle接收的角度值遵循一定的規(guī)則,角度會以x軸正向為0°,以逆時針方向為正,角度從0°逐漸增大;以順時針方向為負,角度從0°逐漸減小。角度與坐標系的關系知識儲備3.使用turtle模塊繪制圖形(2)角度控制函數(shù)importturtleastt.forward(200)t.seth(-90)
t.forward(200)t.right(90)
繪制正方形的示例t.forward(200)t.left(-90)
t.forward(200)t.right(90)
t.done()知識儲備3.使用turtle模塊繪制圖形(3)圖形繪制函數(shù)turtle模塊中提供了circle()函數(shù),使用該函數(shù)可繪制以當前坐標為圓心,以指定像素值為半徑的圓或弧。circle(radius,extent=None,steps=None)語法格式radius:用于設置半徑。extent:用于設置弧的角度。steps:用于設置步長,它可以取值為整型數(shù)據(jù)或None,默認值為None,表示該參數(shù)無效。若參數(shù)steps的值為正數(shù)N,則使用circle()函數(shù)可以繪制一個有N條邊的正多邊形;若參數(shù)steps的值為負數(shù),則使用circle()函數(shù)不會繪制圖形。知識儲備3.使用turtle模塊繪制圖形(3)圖形繪制函數(shù)radius和extent的取值可以是正數(shù),也可以是負數(shù),具體可以分成以下幾種情況:當radius為正數(shù)時,畫筆以原點為起點向上繪制弧線;radius為負數(shù)時,畫筆以原點為起點向下繪制弧線。當extent為正數(shù)時,畫筆以原點為起點向右繪制弧線;extent為負數(shù)時,畫筆以原點為起點向左繪制弧線。繪制半徑為90/-90像素、角度為60°/-60°的弧線知識儲備3.使用turtle模塊繪制圖形(3)圖形繪制函數(shù)turtle模塊中可通過fillcolor()函數(shù)設置填充顏色,通過begin_fill()函數(shù)和end_fill()函數(shù)填充圖形,實現(xiàn)“面”的繪制。importturtleturtle.fillcolor("red")turtle.begin_fill()turtle.circle(100)turtle.end_fill()turtle.done()繪制圓形的示例任務分析創(chuàng)建窗口。繪制藍色圓環(huán)。繪制黑色圓環(huán)。繪制紅色圓環(huán)。繪制黃色圓環(huán)。繪制綠色圓環(huán)。制作環(huán)環(huán)相扣的效果。實現(xiàn)思路任務分析藍色圓環(huán)和黑色圓環(huán)的位置關系黑色圓環(huán)和紅色圓環(huán)的位置關系任務分析黃色圓環(huán)和紅色圓環(huán)的位置關系綠色圓環(huán)和黃色圓環(huán)的位置關系任務分析重疊部分遮擋綠色圓環(huán)或黃色圓環(huán)部分任務實現(xiàn)1.創(chuàng)建項目Chapter08及03_olympic_rings.py文件。2.在03_olympic_rings.py文件中編寫代碼。導入turtle模塊,定義若干個表示特殊值的變量,并根據(jù)指定的大小要求創(chuàng)建窗口。移動指定位置后放下畫筆,繪制描邊為藍色的圓形。移動指定位置后放下畫筆,繪制描邊為黑色的圓形。移動指定位置后放下畫筆,繪制描邊為紅色的圓形。移動指定位置后放下畫筆,繪制描邊為黃色的圓形。移動指定位置后放下畫筆,繪制描邊為綠色的圓形。移動指定位置后放下畫筆,繪制4個指定弧度的弧線。3.運行03_olympic_rings.py文件。實現(xiàn)步驟《西游記》人物出場次數(shù)統(tǒng)計任務8-4任務描述《西游記》是中國古代第一部浪漫主義章回體長篇神魔小說,是中國古典四大名著之一。全書主要描寫了孫悟空、唐僧、豬八戒、沙僧和白龍馬一同西行取經(jīng),歷經(jīng)九九八十一難到達西天見到如來佛祖,最終五圣成真的故事?!段饔斡洝菲薮?、出場人物繁多。任務描述本任務要求讀者編寫程序,讀取xiyouji.txt文件并統(tǒng)計《西游記》小說中的出場次數(shù)排在前10名的人物的出場次數(shù)。【任務目標】知識儲備熟悉第三方模塊的安裝方式,能夠熟練使用pip工具安裝第三方模塊學習目標1.安裝第三方模塊知識儲備1.安裝第三方模塊第三方模塊不能直接在程序中導入與使用,而是需要提前安裝到當前的開發(fā)環(huán)境中。第三方模塊的安裝需要借助pip工具,pip工具是一個通用的Python
包或模塊的管理工具,它提供了查找、下載、安裝、卸載Python包或模塊的功能。知識儲備1.安裝第三方模塊pipinstalljieba#安裝最新版本的jieba模塊pipinstallwordcloud#安裝最新版本的wordcloud模塊示例pipinstall模塊名
#安裝最新版本的模塊pipinstall模塊名==版本號#安裝指定版本的模塊語法格式需要注意的是,pip是在線工具,它只有在聯(lián)網(wǎng)的狀態(tài)下才可以下載相應的模塊資源,若網(wǎng)絡未連接或網(wǎng)絡環(huán)境不佳,則pip工具將無法順利安裝第三方模塊。知識儲備掌握jieba模塊的使用,能夠熟練使用jieba模塊對中文文本進行分詞學習目標2.jieba模塊知識儲備2.jieba模塊jieba模塊用于實現(xiàn)中文分詞,中文分詞即將中文語句或語段拆成若干漢語詞匯。精確模式:試圖將句子最精準地切開。全模式:將句子中所有可以成詞的詞語都掃描出來,速度非常快。搜索引擎模式:在精確模式的基礎上對長詞再次切分,適用于建立搜索引擎的索引。我是一個學生我是學生一個知識儲備2.jieba模塊函數(shù)功能說明cut(s)以精準模式對文本s進行分詞,返回一個可迭代對象cut(s,cut_all=True)默認以全模式對文本s進行分詞,輸出文本s中出現(xiàn)的所有詞cut_for_search(s)以搜索引擎模式對文本s進行分詞lcut(s)以精準模式對文本s進行分詞,分詞結果以列表形式返回lcut(s,cut_all=True)以全模式對文本s進行分詞,分詞結果以列表形式返回lcut_for_search(s)以搜索引擎模式對文本s進行分詞,分詞結果以列表形式返回分
詞
函
數(shù)知識儲備2.jieba模塊示例importjiebaseg_list=jieba.cut("我打算到中國科學研究院圖書館學習",cut_all=True)print("【全模式】:"+"/".join(seg_list))#全模式seg_list=jieba.lcut("我打算到中國科學研究院圖書館學習")print("【精確模式】:"+"/".join(seg_list))#精確模式#搜索引擎模式seg_list=jieba.cut_for_search("我打算到中國科學研究院圖書館學習")print("【搜索引擎模式】:"+",".join(seg_list))知識儲備2.jieba模塊
jieba實現(xiàn)分詞的基礎是詞庫,jieba的詞庫存儲在jieba庫下的dict文件中,該文件中存儲了中文詞庫以及每個詞的詞頻、詞性等信息。利用jieba模塊的add_word()函數(shù)可以向詞庫中增加新詞。jieba.add_word("好天氣")jieba.lcut("今天真是個好天氣")示例任務分析獲取《西游記》全書內(nèi)容。統(tǒng)計中文詞語及數(shù)量。刪除無意義詞語。按固定格式輸出中文詞語及數(shù)量。實現(xiàn)思路"一個","那里","怎么","我們","不知","兩個","甚么","只見","不是","原來","不敢","聞言","如何","什么"停用詞庫的內(nèi)容任務實現(xiàn)1.創(chuàng)建項目Chapter08及04_appearances.py文件。2.在04_appearances.py文件中編寫代碼。導入jieba模塊,從xiyouji.txt文件讀取全書的文本內(nèi)容。使用jieba模塊對文本內(nèi)容進行分詞操作,統(tǒng)計每個中文詞語的出現(xiàn)次數(shù),并對悟空、唐僧和沙僧這3個人物的稱謂進行單獨處理。創(chuàng)建一個停用詞庫,查找字典中是否有停用詞庫中保存的中文詞語,若有則直接從字典中刪除這個中文詞語。按中文詞語的出現(xiàn)次數(shù)對字典進行排序。3.運行04_appearances.py文件。實現(xiàn)步驟制作詞云任務8-5任務描述本任務要求根據(jù)xiyouji.txt文件生成一個形狀如孫悟空圖片的詞云圖片xiyou.jpg?!救蝿漳繕恕恐R儲備掌握wordcloud模塊的使用,能夠熟練使用wordcloud模塊制作詞云圖片學習目標wordcloud模塊知識儲備wordcloud模塊wordcloud是Python中專門生成詞云的第三方模塊,該模塊以文本中詞語出現(xiàn)的頻率作為參數(shù)來繪制詞云,并支持對詞云的形狀、顏色和大小等屬性進行設置。生成詞云的步驟利用WordCloud對象的to_file()方法生成詞云3利用WordCloud對象的generate()方法加載詞云文本2利用WordCloud類的構造方法WordCloud()創(chuàng)建詞云對象1知識儲備wordcloud模塊當調(diào)用WordCloud()方法創(chuàng)建詞云對象時我們可以通過參數(shù)設置詞云的屬性。參數(shù)說明width指定詞云對象生成圖片的寬度,默認為400像素height指定詞云對象生成圖片的高度,默認為200像素min_font_size指定詞云中字體的最小字號,默認為4號max_font_size指定詞云中字體的最大字號,默認根據(jù)高度自動調(diào)節(jié)font_step指定詞云中字體字號的步間隔,默認為1參數(shù)的說明知識儲備wordcloud模塊當調(diào)用WordCloud()方法創(chuàng)建詞云對象時我們可以通過參數(shù)設置詞云的屬性。參數(shù)說明font_path指定字體文件的路徑,默認為當前路徑max_words指定詞云顯示的最大單詞數(shù)量,默認為200stop_words指定詞云的停用詞列表,即不顯示的單詞列表background_color指定詞云圖片的背景顏色,默認為黑色mask指定詞云形狀,默認為長方形參數(shù)的說明知識儲備wordcloud模塊generate()方法會接收一個字符串作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 休閑會所活動方案
- 休閑長褲促銷活動方案
- 優(yōu)惠醫(yī)療活動方案
- 優(yōu)惠省錢活動方案
- 會務活動策劃方案
- 會員參加集市活動方案
- 會員權益美容活動方案
- 會員聯(lián)名活動方案
- 會場邀約活動方案
- 會所乒乓活動方案
- 項目樣板引路管理制度
- 語文基礎模塊上知到課后答案智慧樹章節(jié)測試答案2025年春長春市城建工程學校
- 運動攝影知識培訓課件
- 2025年版高等職業(yè)教育??茖I(yè)教學標準 590302 智慧健康養(yǎng)老服務與管理
- 建筑業(yè)資質(zhì)審查試題
- 2025年軍隊文職人員(新聞類)筆試參考題庫(含答案)
- 2025年勞務合同完整模板
- 四通一平施工方案
- 2020年9月國家開放大學漢語言文學本科《中國當代文學專題》期末紙質(zhì)考試試題及答案
- 2025漢字聽寫大會知識競賽題庫及答案
- 管道穿軍用光纜施工方案
評論
0/150
提交評論