




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
庫的應用庫是具有相關功能模塊的集合,庫中有肴數故龐大的模塊和包可供使用。模塊(module)本質上是一個py文件,可實現(xiàn)一定的功能;而包(package)是一個由模塊和子包組成的Python應用程序執(zhí)行環(huán)境,其本質是一個有層次的文件目錄結構(必須帶有一個_init_.py文件)。本書從使用角度出發(fā),不區(qū)分模塊和包,統(tǒng)稱為模塊。要想“現(xiàn)找現(xiàn)用”這些資源,首先就得知道解決某個問題需要用到什么模塊,一般情況下,在互聯(lián)網上進行問題的主題同搜索就會得到相應的信息;然后將指定模塊導入當前程序。9.1案例:繪制多彩多角星9.1.1提岀問題
對于一個初學者,如果想要嘗試用計算機來解決一些日常生活和學習中遇到的計算問題,就要學者“說”計算機能“憧”的話。那么,Python作為一種計算機語言,它好學嗎?作為一個Python初學者,想要很快通過編程完成一些任務,你覺得可能嗎?下面就嘗試繪制一些有趣的圖形——多彩多角星(如圖9-2所示),體驗Python編程的樂趣。9.1.2解決方案
解決這個問題的基本思路如下:首先,需要知道繪制的是幾角星、邊長是多少、邊線有幾種顏色、填充的又是什么顏色,以及有多少顆星星在環(huán)繞;接著,針對不同的角數(如五角星、九角星等)來設計具體怎么畫,這里會涉及平面幾何的內角、外角計算等;然后,讓計算機按指定邊長繪制這顆多角星,其邊線顏色不同,內部還有不同的填充顏色;最終,通過旋轉一定角度后反復繪制這顆多角星就能構成多星環(huán)繞。9.1案例:繪制多彩多角星再識Python3。1)導入模塊:import和from…importimport的語法如下:import模塊名#導入一個模塊from模塊名import指定元素[as新名稱]#導入模塊中的指定元素,新名稱通常是簡稱from模塊名import*#導入模塊中的全部元素比如,導入turtle庫,輸入以下命令:importturtle在當前程序中導入指定模塊后,才能使用該模塊中包含的各種功能,具體形式如下:模塊名.函數名()比如,讓圓筆順時針旋轉1200,輸入以下命令:Turtle.right(120)9.1案例:繪制多彩多角星2)庫:turtleturtle是Python標準庫,它是一個很流行的繪制圖形的函數庫:一只“小烏龜”從坐標原點開始,面朝正方向,受一組指令的控制,在平面直角坐標系中移動,從而在它爬行的路徑上繪制出圖形。9.1案例:繪制多彩多角星9.1.3任務1——繪制一個三角形新建文件task1-l-l-star.py,按下述任務目標和任務分析編寫源代碼,完成任務1。任務目標:繪制一個三角形,能夠靈活地設置三角形的邊長、角度和顏色,為之后繪制多角星做準備。任務分析:本任務是在引例1-1-1的基礎上加以改進完成的,為邊長、轉角、顏色賦值后,依次繪制三條等長的線段,每條線段繪制完成后,畫筆都順時針轉向120°,從而構成等邊三角形。9.1案例:繪制多彩多角星代碼解析:任務1的源代碼如圖9-5所示。9.1案例:繪制多彩多角星任務1程序運行后的結果如圖9-6所示。9.1案例:繪制多彩多角星9.1.4任務2——快速繪制一顆多角星任務目標:繪制如圖9-7所示的五角星、九角星和二十三角星。9.1案例:繪制多彩多角星9.1.4任務2——快速繪制一顆多角星任務目標:繪制如圖9-7所示的五角星、九角星和二十三角星。1.步驟1:三角形變成五角星步驟1分析:三角形變成五角星,轉角公式的意義(side_angle=180-180/3)就在于此。將3修改成5,就是繪制五角星所需順時針轉動的角度;將繪制一條邊線(直線+轉向)的兩行代碼再復制兩次,共繪制5條邊線,就構成了一顆五角星。代碼解析:步驟1的源代碼如圖9-8所示。步驟1的代碼在任務1的代碼基礎上進行了増加和修改,具體來說,有以下兩處變化。代碼行5:修改代碼。將3改成5,計算的結果就是繪制五角星所需的轉角——144°。代碼行14~17:新增代碼。將繪制一條邊線的兩行代碼再復制兩次,從而構成五角星。9.1案例:繪制多彩多角星9.1.4任務2——快速繪制一顆多角星任務目標:繪制如圖9-7所示的五角星、九角星和二十三角星。1.步驟1:三角形變成五角星步驟1分析:三角形變成五角星,轉角公式的意義(side_angle=180-180/3)就在于此。將3修改成5,就是繪制五角星所需順時針轉動的角度;將繪制一條邊線(直線+轉向)的兩行代碼再復制兩次,共繪制5條邊線,就構成了一顆五角星。代碼解析:步驟1的源代碼如圖9-8所示。步驟1的代碼在任務1的代碼基礎上進行了増加和修改,具體來說,有以下兩處變化。代碼行5:修改代碼。將3改成5,計算的結果就是繪制五角星所需的轉角——144°。代碼行14~17:新增代碼。將繪制一條邊線的兩行代碼再復制兩次,從而構成五角星。9.1案例:繪制多彩多角星完成步驟1后,程序運行結果如圖9-9所示。9.1案例:繪制多彩多角星2.步驟2:用for語句來簡化復制9.1案例:繪制多彩多角星3.步驟3:快速靈活地設置9.1案例:繪制多彩多角星9.1.5任務3—繪制三色邊線任務目標:之前繪制的多角星邊線都是單一顏色(藍色)的,現(xiàn)在要繪制有3種邊線顏色(藍、綠、紅交替岀現(xiàn))的多角星。任務分析:如何實現(xiàn)邊線顏色的變化呢?這里的顏色變化是有規(guī)律的,即藍、綠、紅三色交替出現(xiàn),這種規(guī)律是可以通過判斷來實現(xiàn)的。判斷什么呢?判斷哪些邊線的顏色是藍色、哪些是綠色、哪些是紅色。也就是說,不同的顏色與每條邊線的對應關系可以通過訂語句來實現(xiàn),由于涉及3種顏色,就要用到if-elif-else結構。9.1案例:繪制多彩多角星9.1.5任務3—繪制三色邊線這里對任務2的代碼進行了結構改造,將以下兩行代碼進行擴展:side_color='blue'turtle.color(side_color)9.1案例:繪制多彩多角星9.1.5任務3—繪制三色邊線步驟1:移動代碼,增加縮進需要將上面的兩行代碼(畫筆顏色變量賦值、設置畫筆顏色)從for語句之外移動到for語句的控制范圍內,而且要放在繪制邊線(turtle,forward)的代碼之前。也就是說,對于每一條邊線,先設置畫筆顏色,再進行繪制。9.1案例:繪制多彩多角星9.1.5任務3—繪制三色邊線步驟2:修改代碼3種畫筆顏色與每一條邊線的對應關系要通過if語句來實現(xiàn),那么,需要將直接設置畫筆顏色的代碼(side_color=‘blue')修改成多分支結構的if語句,其中的判斷是針對變量side的值進行的。forsideinrange(side_num):在for語句中,變最side的值依次為0、1、…、side_num-l,可以對應每一條邊線(即第1條邊線side為0,第2條邊線side為1,依此類推),而side%3的結果只有3種情況:0、1、2,正好與3種顏色相對應。9.1案例:繪制多彩多角星9.1.5任務3—繪制三色邊線在這里,為了能看清線條顏色,將三十三角星改為九角星(代碼行4)。任務3程序運行后的結果如圖9-16所示。9.1案例:繪制多彩多角星9.1.6任務4——自行設置角星任務目標:當前繪制的角星邊長和角數都是在代碼中直接賦值的(side_num=9和side_length=300),這在靈活性上有所欠缺.希望能夠自行設置。此外,為了讓角星更漂亮,我們要為它填充顏色。任務分析:角星邊K、角數、填充顏色可以從鍵盤輸入所希望的值,而為繪制的三色角星填充顏色需要一定的步驟,即準備開始填充、填充顏色、結束填充。9.1案例:繪制多彩多角星9.1.6任務4——自行設置角星代碼解析:任務4的源代碼如圖9-17所示。9.1案例:繪制多彩多角星9.1.6任務4——自行設置角星任務4程序運行后的結果如圖9-18所示。在系統(tǒng)提示后,用戶從鍵盤輸入相應的值并按回車鍵,計算機根據輸入的數據繪制圖形。9.1案例:繪制多彩多角星9.1.7拓展任務:多星環(huán)繞拓展任務程序運行后的結果9.2案例:圖片文件快速整理9.2.1提出問題很多時候會遇到這樣一種情況:打開網頁,發(fā)現(xiàn)里血有很多自己感興趣、未來可能會用到的圖片素材。那接下來要怎么辦呢?如圖9-20所示,是否可以把所有網頁素材文件中的圖片文件復制到一個新文件夾中,并統(tǒng)一改成方便記憶和査看的名字,以便于進一步使用呢?9.2案例:圖片文件快速整理9.2.2解決方案解決這個問題的基本思路如下:首先,新建一個文件夾,用于存放圖片文件;接著,從大量文件中選擇圖片文件,網頁中常用的圖片類型有4種(jpg、png、gif、webp);最后,將這些圖片文件復制到新建文件夾中并統(tǒng)一改名。其中,選擇圖片文件涉及重復工作,需要對當前文件夾中的所有文件(夾)進行逐個判斷.如果是圖片文件,才進行進一步處理?;谝陨纤悸?,問題的解決就會涉及操作系統(tǒng)的文件和文件夾操作,因此,需要用到相應的Python標準庫—os和shutil。9.2案例:圖片文件快速整理9.2.3預備知識
1.內置函數:len和str2字符串:轉義符和endswith方法3.庫:OS9.2案例:圖片文件快速整理【引例9.1](exp1-2-l.py)顯示當前文件夾中的文本文件。
顯示當前文件夾(C:\用戶\admin\PycharmProjects\untitled)下的文本文件,該文件路徑下的內容如圖9-22所示。9.2案例:圖片文件快速整理2.引例分析首先,要獲取當前文件夾下的所有內容(包括文件和文件夾);然后,針對這些內容中的每一項進行判斷,如果是文本文件,就在屏幕上顯示其文件名(如圖9-23所示)。9.2案例:圖片文件快速整理2.引例分析首先,要獲取當前文件夾下的所有內容(包括文件和文件夾);然后,針對這些內容中的每一項進行判斷,如果是文本文件,就在屏幕上顯示其文件名(如圖9-23所示)。9.2案例:圖片文件快速整理3.引例實現(xiàn)9.2案例:圖片文件快速整理【引例9.2](exp1-2-2.py)新建文件夾并復制一個文件。1.引例描述把當前文件夾(C:\用戶\admin\PycharmProjects\untitled)下的一個指定文件復制到一個新文件夾下。2.引例分析首先,在屏幕上顯示當前文件夾下的所有內容(包括文件和文件夾);然后,從鍵盤輸入想要新建的文件夾名,并創(chuàng)建這個文件夾;接著,從鍵盤輸入想要復制的文件名,并將這個文件復制到新建的文件夾下;最后,在屏幕上顯示新建文件夾下的內容。效果如圖9-25所示9.2案例:圖片文件快速整理【引例9.2](exp1-2-2.py)新建文件夾并復制一個文件。3.引例實現(xiàn)引例9_2_2的源代碼如圖9-26所示9.2案例:圖片文件快速整理4.源代碼分析代碼行3:導入shutil庫,用于復制文件。代碼行8:變量new_dir表示新文件夾名,通過input函數為其賦值,實現(xiàn)由用戶從鍵盤自行輸入所希望創(chuàng)建的文件夾名。代碼行9:在當前文件夾下創(chuàng)建(os.mkdir)—個文件夾,命名為變量new_dir的值。代碼行11:變量file表示文件名,通過input函數為其賦值,實現(xiàn)由用戶從鍵盤自行輸入所希望復制的文件名。代碼行12:以如圖1-42所示的輸入值為例(file的值為0v.txt,new_dir的值為new),其功能是將文件0v.txt復制一份,命名為new/0v.txt。也就是說,將當前文件夾下的文件(Ov.txt)復制到新建的文件夾(new)下,文件名不變。9.2案例:圖片文件快速整理9.2.4任務1——快速復制jpg文件新建文件task1-2-l.py,按下述任務目標和任務分析編寫代碼,完成任務1。任務目標:將當前文件夾下所有jpg圖片文件復制到一個新文件夾下。任務分析:首先,列出當前文件夾下的所有文件(夾);然后,由鍵盤輸入想要創(chuàng)建的文件夾名稱,并在當前文件夾下創(chuàng)建這個新文件夾;接著,針對當前文件夾下的所有文件(夾),逐個判斷是否為jpg圖片文件,如果是jpg圖片文件,就將該文件復制到新建的文件夾下;最后,列出新建文件夾下的內容,以便查看操作結果。9.2案例:圖片文件快速整理9.2.4任務1——快速復制jpg文件新建文件task1-2-l.py,按下述任務目標和任務分析編寫代碼,完成任務1。任務目標:將當前文件夾下所有jpg圖片文件復制到一個新文件夾下。任務分析:首先,列出當前文件夾下的所有文件(夾);然后,由鍵盤輸入想要創(chuàng)建的文件夾名稱,并在當前文件夾下創(chuàng)建這個新文件夾;接著,針對當前文件夾下的所有文件(夾),逐個判斷是否為jpg圖片文件,如果是jpg圖片文件,就將該文件復制到新建的文件夾下;最后,列出新建文件夾下的內容,以便查看操作結果。9.2案例:圖片文件快速整理9.2.4任務1——快速復制jpg文件代碼解析:任務1的源代碼如圖9-27所示9.2案例:圖片文件快速整理9.2.4任務1——快速復制jpg文件代碼解析:任務1的源代碼如圖9-27所示9.2案例:圖片文件快速整理9.2.4任務1——快速復制jpg文件任務1程序運行后的結果如圖9-28所示。9.2案例:圖片文件快速整理9.2.5任務2——復制并統(tǒng)計圖片文件任務目標:網頁中常用的圖片類型主要有jpg、png、gif、webp,因此,在任務1的基礎上,將判斷“是否為jpg圖片文件”擴展為判斷“是否為任意一種圖片文件”;在判斷條件完整的情況下,復制圖片文件并統(tǒng)計圖片文件的總個數。任務分析:針對4種圖片類型,需要將之前的判斷條件由一個(jpg)增加至4個(jpg、png、gif、webp),它們之間的邏輯關系是“或者”,也就是說,只要文件的擴展名是其中的任何一種,該文件就是圖片文件,圖片文件的個數就會遞增;全部文件處理完成后,圖片文件的總數也就統(tǒng)計出來了。9.2案例:圖片文件快速整理9.2.5任務2——復制并統(tǒng)計圖片文件代碼解析:9.2案例:圖片文件快速整理9.2.5任務2——復制并統(tǒng)計圖片文件運行后的結果:9.2案例:圖片文件快速整理9.2.6任務3—圖片文件統(tǒng)一改名任務目標:在之前的任務中,所有圖片文件都是直接復制到新文件夾下的,文件名并未改變,部分長文件名看起來像亂碼。因此,需要在復制圖片文件的同時,改變文件名,以便進一步使用。任務分析:要實現(xiàn)將所有圖片文件在復制的過程中進行快速、統(tǒng)一的改名,就是要保證在圖片文件的擴展名不變的前提下,將文件名簡化、規(guī)律化,在本任務中就以數字進行編號(從1開始)。具體來說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人銷售代理協(xié)議書
- 手房買賣合同按揭貸款
- 代駕公司與司機的協(xié)議
- 攪拌站承包協(xié)議書
- 數字經驗積累的幼兒園試題及答案
- 小學教師教育教學反思與策略建議試題及答案
- 新能源汽車技術轉型測試試題及答案
- 建筑施工安全教育的重要性試題及答案
- 歡快學習幼兒園數學試題及答案
- 家具設計中的實踐案例分析考試試題及答案
- 中班數學活動建造公園
- 2025年中考英語總復習:書面表達 刷題練習題匯編(含答案解析、范文)
- 警察小學生安全教育講座
- 分期還款協(xié)議書模板示例
- 彩票大數據預測分析
- (完整)老舊小區(qū)改造施工組織設計
- 2024-2030年中國科技服務行業(yè)發(fā)展前景及投資策略分析研究報告
- 《城市軌道交通》課件
- 建筑工程材料取樣送檢一覽表
- 婚姻家庭繼承法期末考試復習題及參考答案
- 項目全周期現(xiàn)金流管理培訓課件
評論
0/150
提交評論