




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
趣味編程挑戰(zhàn):從Python入門到AI應(yīng)用
04繪制五星紅旗——函數(shù)目錄目錄1.1挑戰(zhàn)描述1.2解題思路1.3編程實(shí)現(xiàn)1.4函數(shù)1.5變量的作用域1.6小結(jié)1.7鞏固練習(xí)1966年,SeymourPapert和WallyFeurzig發(fā)明了一種專門給兒童學(xué)習(xí)編程的語言——LOGO語言,它的特色就是通過編程指揮一個(gè)可愛的小海龜(turtle)在屏幕上繪圖。海龜繪圖(TurtleGraphics)后來被移植到了包括Python的各種高級(jí)語言中,Python內(nèi)置了turtle庫,基本上100%復(fù)制了TurtleGraphics的所有功能。在海龜繪圖中,創(chuàng)作者可以編寫程序指令讓一個(gè)虛擬的海龜在電腦屏幕上來回移動(dòng)。這只海龜隨身攜帶著一只鋼筆,創(chuàng)作者可以讓海龜使用這只鋼筆來繪制五顏六色的圖案。使用海龜繪圖,創(chuàng)作者們不僅能夠只用幾行代碼就創(chuàng)建出令人印象深刻的視覺效果,而且還可以通過觀察海龜來理解每行代碼如何影響到它的移動(dòng),幫助其理解代碼的邏輯。所以海龜繪圖也常被用作新手學(xué)習(xí)Python的一種有效方法。本次挑戰(zhàn)中,需要用Python語言的turtle庫,在屏幕上繪制出一面五星紅旗。
1.1挑戰(zhàn)描述Python語言的turtle庫中提供了種類豐富的內(nèi)置函數(shù),以幫助使用者繪制繪制各種圖案。本挑戰(zhàn)中將會(huì)使用到的部分turtle庫函數(shù)如表所示:1.2解題思路函數(shù)名稱功能示例begin_fill()在繪制要填充的形狀之前調(diào)用turtle.begin_fill()bgcolor(顏色值)設(shè)置主窗口的背景顏色turtle.bgcolor("red")color(顏色值)設(shè)置畫筆顏色和填充顏色turtle.color("yellow")done()海龜繪圖程序的結(jié)束語句turtle.done()down()放下畫筆,移動(dòng)時(shí)將畫線turtle.down()end_fill()填充上次調(diào)用begin_fill()之后繪制的形狀turtle.end_fill()forward(距離)海龜前進(jìn)指定距離,方向?yàn)楹}數(shù)某騮urtle.forward(10)goto(X坐標(biāo),Y坐標(biāo))海龜移動(dòng)到一個(gè)絕對(duì)坐標(biāo)turtle.goto(100,100)hideturtle()使海龜不可見turtle.hideturtle()left(角度)海龜左轉(zhuǎn)指定角度turtle.left(5)right(角度)海龜右轉(zhuǎn)指定角度turtle.right(5)seth(角度)設(shè)置海龜?shù)某颍?為東、90為北、180為西、270為南turtle.seth(0)setup(寬,高,距屏幕左邊緣像素?cái)?shù),距屏幕上邊緣像素?cái)?shù))設(shè)置主窗口的大小和位置turtle.setup(600,400,0,0)speed(速度值)設(shè)置海龜移動(dòng)速度,范圍[0,10]turtle.speed(7)使用自然語言描述”繪制五星紅旗“挑戰(zhàn)的算法,其步驟如下。(1)初始化五星紅旗的大小和背景色、畫筆顏色、海龜?shù)囊苿?dòng)速度。(2)調(diào)用自定義函數(shù)drawStar()繪制大五星。(3)調(diào)用自定義函數(shù)drawStar()分別繪制四個(gè)小五星。1.2解題思路1.3編程實(shí)現(xiàn)1.4函數(shù)
函數(shù)是Python語言里最重要的概念之一。在編程時(shí),程序員們需要將真實(shí)世界里的大問題分解為小問題,然后通過一個(gè)個(gè)函數(shù)交出答案。函數(shù)即是重復(fù)代碼的克星,也是對(duì)抗代碼復(fù)雜度的最佳武器。1、內(nèi)置函數(shù)當(dāng)我們用Python編程的時(shí)候,很多情況下,我們只不過是在使用別人已經(jīng)寫好的函數(shù),即內(nèi)置函數(shù)。例如,print()函數(shù)。2、函數(shù)的參數(shù)在Python中,函數(shù)的參數(shù),有如下兩種:位置參數(shù)和關(guān)鍵字參數(shù)。在函數(shù)定義中,帶有=的參數(shù)為已設(shè)定了默認(rèn)值的參數(shù),叫做關(guān)鍵字參數(shù),其它的是位置參數(shù)。3、自定義函數(shù)程序員們可以定義并使用自己的函數(shù),就像內(nèi)置函數(shù)一樣,自定義函數(shù)的關(guān)鍵字是def,以下代碼定義了一個(gè)什么都不干的函數(shù):1.4函數(shù)為函數(shù)取名字的規(guī)則與變量的命名規(guī)則是一樣的,即只能由數(shù)字、字母和下劃線構(gòu)成,不能以數(shù)字開頭,不能使用關(guān)鍵字,且盡量使用有意義的單詞或單詞組作為函數(shù)名稱。自定義函數(shù)的第二步是定義參數(shù)列表,函數(shù)可以不接收任何參數(shù)(參數(shù)列表為空),也可以接收一個(gè)或多個(gè)參數(shù)。接下來定義一個(gè)判斷某年是否為閏年的函數(shù),取名為isLeap(),它接收一個(gè)整型參數(shù),若是閏年,則返回True;否則返回False。1.4函數(shù)函數(shù)可以同時(shí)接收多個(gè)參數(shù)。例如,可以寫一個(gè)函數(shù),讓它輸出從大于等于某個(gè)年份到小于另外一個(gè)年份所有的閏年。這時(shí)就需要定義兩個(gè)參數(shù),調(diào)用它的時(shí)候也需要傳遞兩個(gè)參數(shù)。自定義函數(shù)的第三步工作是處理返回值。函數(shù)通過return語句來輸出返回值。但函數(shù)內(nèi)部,不一定非要有return語句,上面的do_nothing()函數(shù)就沒有return語句,如果函數(shù)內(nèi)部并未定義返回值,那么該函數(shù)的返回值為None,當(dāng)None被當(dāng)作布爾值對(duì)待的時(shí)候,相當(dāng)于是False。而上面的isLeap()函數(shù),就有一個(gè)布爾型的返回值,并通過return語句輸出。若是閏年,則返回True;否則返回False。1.5變量的作用域在程序執(zhí)行過程中,變量有全局變量(GlobalVariable)和局域變量(LocalVariable)之分。首先,每次某個(gè)函數(shù)被調(diào)用的時(shí)候,這個(gè)函數(shù)會(huì)開辟一個(gè)新的內(nèi)存區(qū)域,這個(gè)函數(shù)內(nèi)部所有的變量,都是局域變量。也就是說,即便那個(gè)函數(shù)內(nèi)部某個(gè)變量的名稱與它外部的某個(gè)全局變量名稱相同,它們也不是同一個(gè)變量——只是名稱相同而已;其次,更為重要的是,當(dāng)外部調(diào)用一個(gè)函數(shù)的時(shí)候,傳遞給參數(shù)的不是變量本身,而是變量的值。也就是說,當(dāng)increaseOne(n)被調(diào)用的時(shí)候,被傳遞給那個(gè)恰好名稱也叫n的局域變量的,是全局變量n的值1;而后,increaseOne()函數(shù)的代碼開始執(zhí)行,局域變量n經(jīng)過n+=1執(zhí)行之后,其值變?yōu)?,而后這個(gè)值又被return語句返回,所以print(increaseOne(n))所輸出的值是函數(shù)被調(diào)用之后的返回值,即2;最后,全局變量n的值并沒有被改變,因?yàn)榫植孔兞縩(它的值是2)和全局變量n(它的值還是1)只不過是名字相同而已,但它們并不是同一個(gè)變量。??有一種情況要格外注意,如果傳遞進(jìn)來的參數(shù)是可變?nèi)萜鳎ɡ?,列表)時(shí),函數(shù)內(nèi)部如果對(duì)這個(gè)容器的某些項(xiàng)進(jìn)行了修改,則全局有效。所以,一個(gè)比較好的習(xí)慣是,如果傳遞進(jìn)來的值是列表,那么在函數(shù)內(nèi)部對(duì)其操作之前,應(yīng)先創(chuàng)建一個(gè)它的拷貝。容器和列表是“前置引用”知識(shí),會(huì)在后面的挑戰(zhàn)中詳細(xì)介紹。1.6小結(jié)本次挑戰(zhàn)中,通過“繪制五星紅旗”挑戰(zhàn),引入了函數(shù)的知識(shí)點(diǎn),希望各位能夠掌握Python中內(nèi)置函數(shù)和自定義函數(shù)的使用方法,具體包括:內(nèi)置函數(shù)函數(shù)的參數(shù)和返回值自定義函數(shù)變量的作用域
1.7鞏固練習(xí)習(xí)題1:閱讀如下Python代碼,寫出運(yùn)行結(jié)果。
1.7鞏固練習(xí)習(xí)題2:“小處著手”,是一個(gè)很好的學(xué)習(xí)方式,先學(xué)會(huì)編寫各種“小”函數(shù),慢慢地就能設(shè)計(jì)“大”函數(shù)了。下面的Python代碼
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 期末考試的演講稿范文400字(33篇)
- 資本之眼如何快速完成固態(tài)電池項(xiàng)目匯報(bào)
- 音樂作品著作權(quán)侵權(quán)案例詳解
- 工程經(jīng)濟(jì)呂正輝呂正輝76課件
- 東北師范大學(xué)《建筑快速設(shè)計(jì)訓(xùn)練Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧工程技術(shù)大學(xué)《文化項(xiàng)目管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南省洛陽市伊川縣德藝實(shí)驗(yàn)小學(xué)2025年數(shù)學(xué)三下期末預(yù)測試題含解析
- 吉林水利電力職業(yè)學(xué)院《國際公法與國際私法》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年黑河市北安市五年級(jí)數(shù)學(xué)第二學(xué)期期末統(tǒng)考模擬試題含答案
- 足療店品牌文化與核心價(jià)值觀的構(gòu)建
- 鹽酸利多卡因應(yīng)用于無痛導(dǎo)尿術(shù)的臨床效果觀察
- 部編人教版五年級(jí)下冊道德與法治簡答題歸納總結(jié)
- 保障性住房資格申請(qǐng)表
- PEP五年級(jí)上冊Unit3-字母組合ow的發(fā)音
- 籃球特色學(xué)校實(shí)施方案
- 單人心肺復(fù)蘇技術(shù)操作考核評(píng)分標(biāo)準(zhǔn)
- 水稻種子生產(chǎn)技術(shù)
- 第四章 學(xué)習(xí)心理導(dǎo)論
- 旅游政策與法規(guī)教案
- 征兵心理測試
- 2023年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院高職單招(語文)試題庫含答案解析
評(píng)論
0/150
提交評(píng)論