版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
庫的應(yīng)用庫是具有相關(guān)功能模塊的集合,庫中有肴數(shù)故龐大的模塊和包可供使用。模塊(module)本質(zhì)上是一個(gè)py文件,可實(shí)現(xiàn)一定的功能;而包(package)是一個(gè)由模塊和子包組成的Python應(yīng)用程序執(zhí)行環(huán)境,其本質(zhì)是一個(gè)有層次的文件目錄結(jié)構(gòu)(必須帶有一個(gè)_init_.py文件)。本書從使用角度出發(fā),不區(qū)分模塊和包,統(tǒng)稱為模塊。要想“現(xiàn)找現(xiàn)用”這些資源,首先就得知道解決某個(gè)問題需要用到什么模塊,一般情況下,在互聯(lián)網(wǎng)上進(jìn)行問題的主題同搜索就會(huì)得到相應(yīng)的信息;然后將指定模塊導(dǎo)入當(dāng)前程序。9.1案例:繪制多彩多角星9.1.1提岀問題
對(duì)于一個(gè)初學(xué)者,如果想要嘗試用計(jì)算機(jī)來解決一些日常生活和學(xué)習(xí)中遇到的計(jì)算問題,就要學(xué)者“說”計(jì)算機(jī)能“憧”的話。那么,Python作為一種計(jì)算機(jī)語言,它好學(xué)嗎?作為一個(gè)Python初學(xué)者,想要很快通過編程完成一些任務(wù),你覺得可能嗎?下面就嘗試?yán)L制一些有趣的圖形——多彩多角星(如圖9-2所示),體驗(yàn)Python編程的樂趣。9.1.2解決方案
解決這個(gè)問題的基本思路如下:首先,需要知道繪制的是幾角星、邊長(zhǎng)是多少、邊線有幾種顏色、填充的又是什么顏色,以及有多少顆星星在環(huán)繞;接著,針對(duì)不同的角數(shù)(如五角星、九角星等)來設(shè)計(jì)具體怎么畫,這里會(huì)涉及平面幾何的內(nèi)角、外角計(jì)算等;然后,讓計(jì)算機(jī)按指定邊長(zhǎng)繪制這顆多角星,其邊線顏色不同,內(nèi)部還有不同的填充顏色;最終,通過旋轉(zhuǎn)一定角度后反復(fù)繪制這顆多角星就能構(gòu)成多星環(huán)繞。9.1案例:繪制多彩多角星再識(shí)Python3。1)導(dǎo)入模塊:import和from…importimport的語法如下:import模塊名#導(dǎo)入一個(gè)模塊from模塊名import指定元素[as新名稱]#導(dǎo)入模塊中的指定元素,新名稱通常是簡(jiǎn)稱from模塊名import*#導(dǎo)入模塊中的全部元素比如,導(dǎo)入turtle庫,輸入以下命令:importturtle在當(dāng)前程序中導(dǎo)入指定模塊后,才能使用該模塊中包含的各種功能,具體形式如下:模塊名.函數(shù)名()比如,讓圓筆順時(shí)針旋轉(zhuǎn)1200,輸入以下命令:Turtle.right(120)9.1案例:繪制多彩多角星2)庫:turtleturtle是Python標(biāo)準(zhǔn)庫,它是一個(gè)很流行的繪制圖形的函數(shù)庫:一只“小烏龜”從坐標(biāo)原點(diǎn)開始,面朝正方向,受一組指令的控制,在平面直角坐標(biāo)系中移動(dòng),從而在它爬行的路徑上繪制出圖形。9.1案例:繪制多彩多角星9.1.3任務(wù)1——繪制一個(gè)三角形新建文件task1-l-l-star.py,按下述任務(wù)目標(biāo)和任務(wù)分析編寫源代碼,完成任務(wù)1。任務(wù)目標(biāo):繪制一個(gè)三角形,能夠靈活地設(shè)置三角形的邊長(zhǎng)、角度和顏色,為之后繪制多角星做準(zhǔn)備。任務(wù)分析:本任務(wù)是在引例1-1-1的基礎(chǔ)上加以改進(jìn)完成的,為邊長(zhǎng)、轉(zhuǎn)角、顏色賦值后,依次繪制三條等長(zhǎng)的線段,每條線段繪制完成后,畫筆都順時(shí)針轉(zhuǎn)向120°,從而構(gòu)成等邊三角形。9.1案例:繪制多彩多角星代碼解析:任務(wù)1的源代碼如圖9-5所示。9.1案例:繪制多彩多角星任務(wù)1程序運(yùn)行后的結(jié)果如圖9-6所示。9.1案例:繪制多彩多角星9.1.4任務(wù)2——快速繪制一顆多角星任務(wù)目標(biāo):繪制如圖9-7所示的五角星、九角星和二十三角星。9.1案例:繪制多彩多角星9.1.4任務(wù)2——快速繪制一顆多角星任務(wù)目標(biāo):繪制如圖9-7所示的五角星、九角星和二十三角星。1.步驟1:三角形變成五角星步驟1分析:三角形變成五角星,轉(zhuǎn)角公式的意義(side_angle=180-180/3)就在于此。將3修改成5,就是繪制五角星所需順時(shí)針轉(zhuǎn)動(dòng)的角度;將繪制一條邊線(直線+轉(zhuǎn)向)的兩行代碼再復(fù)制兩次,共繪制5條邊線,就構(gòu)成了一顆五角星。代碼解析:步驟1的源代碼如圖9-8所示。步驟1的代碼在任務(wù)1的代碼基礎(chǔ)上進(jìn)行了増加和修改,具體來說,有以下兩處變化。代碼行5:修改代碼。將3改成5,計(jì)算的結(jié)果就是繪制五角星所需的轉(zhuǎn)角——144°。代碼行14~17:新增代碼。將繪制一條邊線的兩行代碼再復(fù)制兩次,從而構(gòu)成五角星。9.1案例:繪制多彩多角星9.1.4任務(wù)2——快速繪制一顆多角星任務(wù)目標(biāo):繪制如圖9-7所示的五角星、九角星和二十三角星。1.步驟1:三角形變成五角星步驟1分析:三角形變成五角星,轉(zhuǎn)角公式的意義(side_angle=180-180/3)就在于此。將3修改成5,就是繪制五角星所需順時(shí)針轉(zhuǎn)動(dòng)的角度;將繪制一條邊線(直線+轉(zhuǎn)向)的兩行代碼再復(fù)制兩次,共繪制5條邊線,就構(gòu)成了一顆五角星。代碼解析:步驟1的源代碼如圖9-8所示。步驟1的代碼在任務(wù)1的代碼基礎(chǔ)上進(jìn)行了増加和修改,具體來說,有以下兩處變化。代碼行5:修改代碼。將3改成5,計(jì)算的結(jié)果就是繪制五角星所需的轉(zhuǎn)角——144°。代碼行14~17:新增代碼。將繪制一條邊線的兩行代碼再復(fù)制兩次,從而構(gòu)成五角星。9.1案例:繪制多彩多角星完成步驟1后,程序運(yùn)行結(jié)果如圖9-9所示。9.1案例:繪制多彩多角星2.步驟2:用for語句來簡(jiǎn)化復(fù)制9.1案例:繪制多彩多角星3.步驟3:快速靈活地設(shè)置9.1案例:繪制多彩多角星9.1.5任務(wù)3—繪制三色邊線任務(wù)目標(biāo):之前繪制的多角星邊線都是單一顏色(藍(lán)色)的,現(xiàn)在要繪制有3種邊線顏色(藍(lán)、綠、紅交替岀現(xiàn))的多角星。任務(wù)分析:如何實(shí)現(xiàn)邊線顏色的變化呢?這里的顏色變化是有規(guī)律的,即藍(lán)、綠、紅三色交替出現(xiàn),這種規(guī)律是可以通過判斷來實(shí)現(xiàn)的。判斷什么呢?判斷哪些邊線的顏色是藍(lán)色、哪些是綠色、哪些是紅色。也就是說,不同的顏色與每條邊線的對(duì)應(yīng)關(guān)系可以通過訂語句來實(shí)現(xiàn),由于涉及3種顏色,就要用到if-elif-else結(jié)構(gòu)。9.1案例:繪制多彩多角星9.1.5任務(wù)3—繪制三色邊線這里對(duì)任務(wù)2的代碼進(jìn)行了結(jié)構(gòu)改造,將以下兩行代碼進(jìn)行擴(kuò)展:side_color='blue'turtle.color(side_color)9.1案例:繪制多彩多角星9.1.5任務(wù)3—繪制三色邊線步驟1:移動(dòng)代碼,增加縮進(jìn)需要將上面的兩行代碼(畫筆顏色變量賦值、設(shè)置畫筆顏色)從for語句之外移動(dòng)到for語句的控制范圍內(nèi),而且要放在繪制邊線(turtle,forward)的代碼之前。也就是說,對(duì)于每一條邊線,先設(shè)置畫筆顏色,再進(jìn)行繪制。9.1案例:繪制多彩多角星9.1.5任務(wù)3—繪制三色邊線步驟2:修改代碼3種畫筆顏色與每一條邊線的對(duì)應(yīng)關(guān)系要通過if語句來實(shí)現(xiàn),那么,需要將直接設(shè)置畫筆顏色的代碼(side_color=‘blue')修改成多分支結(jié)構(gòu)的if語句,其中的判斷是針對(duì)變量side的值進(jìn)行的。forsideinrange(side_num):在for語句中,變最side的值依次為0、1、…、side_num-l,可以對(duì)應(yīng)每一條邊線(即第1條邊線side為0,第2條邊線side為1,依此類推),而side%3的結(jié)果只有3種情況:0、1、2,正好與3種顏色相對(duì)應(yīng)。9.1案例:繪制多彩多角星9.1.5任務(wù)3—繪制三色邊線在這里,為了能看清線條顏色,將三十三角星改為九角星(代碼行4)。任務(wù)3程序運(yùn)行后的結(jié)果如圖9-16所示。9.1案例:繪制多彩多角星9.1.6任務(wù)4——自行設(shè)置角星任務(wù)目標(biāo):當(dāng)前繪制的角星邊長(zhǎng)和角數(shù)都是在代碼中直接賦值的(side_num=9和side_length=300),這在靈活性上有所欠缺.希望能夠自行設(shè)置。此外,為了讓角星更漂亮,我們要為它填充顏色。任務(wù)分析:角星邊K、角數(shù)、填充顏色可以從鍵盤輸入所希望的值,而為繪制的三色角星填充顏色需要一定的步驟,即準(zhǔn)備開始填充、填充顏色、結(jié)束填充。9.1案例:繪制多彩多角星9.1.6任務(wù)4——自行設(shè)置角星代碼解析:任務(wù)4的源代碼如圖9-17所示。9.1案例:繪制多彩多角星9.1.6任務(wù)4——自行設(shè)置角星任務(wù)4程序運(yùn)行后的結(jié)果如圖9-18所示。在系統(tǒng)提示后,用戶從鍵盤輸入相應(yīng)的值并按回車鍵,計(jì)算機(jī)根據(jù)輸入的數(shù)據(jù)繪制圖形。9.1案例:繪制多彩多角星9.1.7拓展任務(wù):多星環(huán)繞拓展任務(wù)程序運(yùn)行后的結(jié)果9.2案例:圖片文件快速整理9.2.1提出問題很多時(shí)候會(huì)遇到這樣一種情況:打開網(wǎng)頁,發(fā)現(xiàn)里血有很多自己感興趣、未來可能會(huì)用到的圖片素材。那接下來要怎么辦呢?如圖9-20所示,是否可以把所有網(wǎng)頁素材文件中的圖片文件復(fù)制到一個(gè)新文件夾中,并統(tǒng)一改成方便記憶和査看的名字,以便于進(jìn)一步使用呢?9.2案例:圖片文件快速整理9.2.2解決方案解決這個(gè)問題的基本思路如下:首先,新建一個(gè)文件夾,用于存放圖片文件;接著,從大量文件中選擇圖片文件,網(wǎng)頁中常用的圖片類型有4種(jpg、png、gif、webp);最后,將這些圖片文件復(fù)制到新建文件夾中并統(tǒng)一改名。其中,選擇圖片文件涉及重復(fù)工作,需要對(duì)當(dāng)前文件夾中的所有文件(夾)進(jìn)行逐個(gè)判斷.如果是圖片文件,才進(jìn)行進(jìn)一步處理。基于以上思路,問題的解決就會(huì)涉及操作系統(tǒng)的文件和文件夾操作,因此,需要用到相應(yīng)的Python標(biāo)準(zhǔn)庫—os和shutil。9.2案例:圖片文件快速整理9.2.3預(yù)備知識(shí)
1.內(nèi)置函數(shù):len和str2字符串:轉(zhuǎn)義符和endswith方法3.庫:OS9.2案例:圖片文件快速整理【引例9.1](exp1-2-l.py)顯示當(dāng)前文件夾中的文本文件。
顯示當(dāng)前文件夾(C:\用戶\admin\PycharmProjects\untitled)下的文本文件,該文件路徑下的內(nèi)容如圖9-22所示。9.2案例:圖片文件快速整理2.引例分析首先,要獲取當(dāng)前文件夾下的所有內(nèi)容(包括文件和文件夾);然后,針對(duì)這些內(nèi)容中的每一項(xiàng)進(jìn)行判斷,如果是文本文件,就在屏幕上顯示其文件名(如圖9-23所示)。9.2案例:圖片文件快速整理2.引例分析首先,要獲取當(dāng)前文件夾下的所有內(nèi)容(包括文件和文件夾);然后,針對(duì)這些內(nèi)容中的每一項(xiàng)進(jìn)行判斷,如果是文本文件,就在屏幕上顯示其文件名(如圖9-23所示)。9.2案例:圖片文件快速整理3.引例實(shí)現(xiàn)9.2案例:圖片文件快速整理【引例9.2](exp1-2-2.py)新建文件夾并復(fù)制一個(gè)文件。1.引例描述把當(dāng)前文件夾(C:\用戶\admin\PycharmProjects\untitled)下的一個(gè)指定文件復(fù)制到一個(gè)新文件夾下。2.引例分析首先,在屏幕上顯示當(dāng)前文件夾下的所有內(nèi)容(包括文件和文件夾);然后,從鍵盤輸入想要新建的文件夾名,并創(chuàng)建這個(gè)文件夾;接著,從鍵盤輸入想要復(fù)制的文件名,并將這個(gè)文件復(fù)制到新建的文件夾下;最后,在屏幕上顯示新建文件夾下的內(nèi)容。效果如圖9-25所示9.2案例:圖片文件快速整理【引例9.2](exp1-2-2.py)新建文件夾并復(fù)制一個(gè)文件。3.引例實(shí)現(xiàn)引例9_2_2的源代碼如圖9-26所示9.2案例:圖片文件快速整理4.源代碼分析代碼行3:導(dǎo)入shutil庫,用于復(fù)制文件。代碼行8:變量new_dir表示新文件夾名,通過input函數(shù)為其賦值,實(shí)現(xiàn)由用戶從鍵盤自行輸入所希望創(chuàng)建的文件夾名。代碼行9:在當(dāng)前文件夾下創(chuàng)建(os.mkdir)—個(gè)文件夾,命名為變量new_dir的值。代碼行11:變量file表示文件名,通過input函數(shù)為其賦值,實(shí)現(xiàn)由用戶從鍵盤自行輸入所希望復(fù)制的文件名。代碼行12:以如圖1-42所示的輸入值為例(file的值為0v.txt,new_dir的值為new),其功能是將文件0v.txt復(fù)制一份,命名為new/0v.txt。也就是說,將當(dāng)前文件夾下的文件(Ov.txt)復(fù)制到新建的文件夾(new)下,文件名不變。9.2案例:圖片文件快速整理9.2.4任務(wù)1——快速復(fù)制jpg文件新建文件task1-2-l.py,按下述任務(wù)目標(biāo)和任務(wù)分析編寫代碼,完成任務(wù)1。任務(wù)目標(biāo):將當(dāng)前文件夾下所有jpg圖片文件復(fù)制到一個(gè)新文件夾下。任務(wù)分析:首先,列出當(dāng)前文件夾下的所有文件(夾);然后,由鍵盤輸入想要?jiǎng)?chuàng)建的文件夾名稱,并在當(dāng)前文件夾下創(chuàng)建這個(gè)新文件夾;接著,針對(duì)當(dāng)前文件夾下的所有文件(夾),逐個(gè)判斷是否為jpg圖片文件,如果是jpg圖片文件,就將該文件復(fù)制到新建的文件夾下;最后,列出新建文件夾下的內(nèi)容,以便查看操作結(jié)果。9.2案例:圖片文件快速整理9.2.4任務(wù)1——快速復(fù)制jpg文件新建文件task1-2-l.py,按下述任務(wù)目標(biāo)和任務(wù)分析編寫代碼,完成任務(wù)1。任務(wù)目標(biāo):將當(dāng)前文件夾下所有jpg圖片文件復(fù)制到一個(gè)新文件夾下。任務(wù)分析:首先,列出當(dāng)前文件夾下的所有文件(夾);然后,由鍵盤輸入想要?jiǎng)?chuàng)建的文件夾名稱,并在當(dāng)前文件夾下創(chuàng)建這個(gè)新文件夾;接著,針對(duì)當(dāng)前文件夾下的所有文件(夾),逐個(gè)判斷是否為jpg圖片文件,如果是jpg圖片文件,就將該文件復(fù)制到新建的文件夾下;最后,列出新建文件夾下的內(nèi)容,以便查看操作結(jié)果。9.2案例:圖片文件快速整理9.2.4任務(wù)1——快速復(fù)制jpg文件代碼解析:任務(wù)1的源代碼如圖9-27所示9.2案例:圖片文件快速整理9.2.4任務(wù)1——快速復(fù)制jpg文件代碼解析:任務(wù)1的源代碼如圖9-27所示9.2案例:圖片文件快速整理9.2.4任務(wù)1——快速復(fù)制jpg文件任務(wù)1程序運(yùn)行后的結(jié)果如圖9-28所示。9.2案例:圖片文件快速整理9.2.5任務(wù)2——復(fù)制并統(tǒng)計(jì)圖片文件任務(wù)目標(biāo):網(wǎng)頁中常用的圖片類型主要有jpg、png、gif、webp,因此,在任務(wù)1的基礎(chǔ)上,將判斷“是否為jpg圖片文件”擴(kuò)展為判斷“是否為任意一種圖片文件”;在判斷條件完整的情況下,復(fù)制圖片文件并統(tǒng)計(jì)圖片文件的總個(gè)數(shù)。任務(wù)分析:針對(duì)4種圖片類型,需要將之前的判斷條件由一個(gè)(jpg)增加至4個(gè)(jpg、png、gif、webp),它們之間的邏輯關(guān)系是“或者”,也就是說,只要文件的擴(kuò)展名是其中的任何一種,該文件就是圖片文件,圖片文件的個(gè)數(shù)就會(huì)遞增;全部文件處理完成后,圖片文件的總數(shù)也就統(tǒng)計(jì)出來了。9.2案例:圖片文件快速整理9.2.5任務(wù)2——復(fù)制并統(tǒng)計(jì)圖片文件代碼解析:9.2案例:圖片文件快速整理9.2.5任務(wù)2——復(fù)制并統(tǒng)計(jì)圖片文件運(yùn)行后的結(jié)果:9.2案例:圖片文件快速整理9.2.6任務(wù)3—圖片文件統(tǒng)一改名任務(wù)目標(biāo):在之前的任務(wù)中,所有圖片文件都是直接復(fù)制到新文件夾下的,文件名并未改變,部分長(zhǎng)文件名看起來像亂碼。因此,需要在復(fù)制圖片文件的同時(shí),改變文件名,以便進(jìn)一步使用。任務(wù)分析:要實(shí)現(xiàn)將所有圖片文件在復(fù)制的過程中進(jìn)行快速、統(tǒng)一的改名,就是要保證在圖片文件的擴(kuò)展名不變的前提下,將文件名簡(jiǎn)化、規(guī)律化,在本任務(wù)中就以數(shù)字進(jìn)行編號(hào)(從1開始)。具體來說
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版外銷合同范本:新能源產(chǎn)品海外銷售合作協(xié)議5篇
- 2025年個(gè)人二手車交易車輛交易咨詢及指導(dǎo)服務(wù)協(xié)議2篇
- 2025年度店鋪空間布局優(yōu)化施工合同范本
- 2025版新車銷售與車主關(guān)愛活動(dòng)合作合同范本2篇
- 2025年度城市綠化工程個(gè)人養(yǎng)護(hù)施工合同4篇
- 2025-2030全球電子合同智能管理服務(wù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球三環(huán)癸烷二甲醇二甲基丙烯酸酯行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國口服滲透泵行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2024年遼寧中考數(shù)學(xué)臨考押題卷解析版
- 2024年全國高考語文試題分類匯編:詞語(成語、熟語等)含詳細(xì)解答
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測(cè)濟(jì)南期末試題和答案
- 中儲(chǔ)糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 2024-2025學(xué)年人教版三年級(jí)(上)英語寒假作業(yè)(九)
- 河南退役軍人專升本計(jì)算機(jī)真題答案
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 駕駛證學(xué)法減分(學(xué)法免分)試題和答案(50題完整版)1650
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項(xiàng)整治三年行動(dòng)實(shí)施方案全國安全生產(chǎn)專項(xiàng)整治三年行動(dòng)計(jì)劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 2023年漢中市人民政府國有資產(chǎn)監(jiān)督管理委員會(huì)公務(wù)員考試《行政職業(yè)能力測(cè)驗(yàn)》歷年真題及詳解
評(píng)論
0/150
提交評(píng)論