999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

學(xué)編程,“修代碼”最重要

2019-09-10 19:34:33
電腦報(bào) 2019年11期
關(guān)鍵詞:程序

在我們的python課程中,用到的森林一關(guān),地牢里的關(guān)卡主要是偏向鍛煉用戶的基本語法結(jié)構(gòu)和計(jì)算機(jī)思維,讓大家熟悉極客戰(zhàn)記的操作與代碼的使用。來到了森林,關(guān)卡將會變得更多更難,同樣,到了森林,大家就正式開始接觸編程的幾大重要知識點(diǎn):條件判斷、運(yùn)算符、函數(shù)、對象屬性。

一、關(guān)卡簡介

「目光短淺的警衛(wèi)」本關(guān)涉及的編程知識點(diǎn)還是函數(shù)及函數(shù)參數(shù),但僅僅懂得“寫代碼”,還不能通過這一關(guān),我們還需要掌握“修代碼”的能力——觀察程序運(yùn)行過程,自主完善程序邏輯的計(jì)算思維。

這一關(guān)有些特殊,一進(jìn)入本關(guān),什么都還沒做,系統(tǒng)就彈出了一個(gè)紅色錯(cuò)誤提示框(圖1),看起來十分嚇人。

二、知識點(diǎn):代碼查錯(cuò)與修正(一)

當(dāng)我們遇到系統(tǒng)彈出報(bào)錯(cuò)時(shí),保持冷靜,大家可以使用以下三步來解決問題:查看報(bào)錯(cuò)類型,閱讀報(bào)錯(cuò)代碼,定位錯(cuò)誤位置,看到報(bào)錯(cuò)彈窗(圖2):

彈窗說明,錯(cuò)誤發(fā)生在第16行,錯(cuò)誤類型是ReferfenceError,是引用錯(cuò)誤的意思,后方則指出了產(chǎn)生這個(gè)錯(cuò)誤的具體代碼段,如果不明白ReferfenceError是什么意思,沒關(guān)系,在最后還有中文具體解釋這個(gè)錯(cuò)誤——“未定義”。

那么閱讀第16行的錯(cuò)誤代碼:在這一行,程序調(diào)用了checkTakeRun函數(shù),并傳入了參數(shù)coin。結(jié)合報(bào)錯(cuò)提示,我們就能知道在程序的第16行,調(diào)用checkTakeRun函數(shù)的這段代碼,發(fā)生了未定義錯(cuò)誤。什么叫未定義錯(cuò)誤呢?在上一篇關(guān)卡教學(xué)里,我們有詳細(xì)講過函數(shù)的相關(guān)知識,里面有提到我們在程序里創(chuàng)建一個(gè)函數(shù),在計(jì)算機(jī)里面,這個(gè)動作就叫做定義函數(shù),不太熟悉的同學(xué),可以回到上一篇文章復(fù)習(xí)復(fù)習(xí):極客戰(zhàn)記[森林]:遠(yuǎn)程除法-通關(guān)代碼及講解,那么此處未定義錯(cuò)誤的意思就很明確了:

你當(dāng)前調(diào)用的checkTakeRun函數(shù),還沒有創(chuàng)建出來,沒有創(chuàng)建的東西,你要讓程序去使用它,而程序找不到這個(gè)函數(shù),自然就會發(fā)生報(bào)錯(cuò),因此查看我們的代碼(圖3):

可以看到,在這個(gè)程序里,我們只創(chuàng)建了takeItem函數(shù),而并沒有創(chuàng)建checkTakeRun函數(shù)。因此解決問題的思路也清晰了:根據(jù)注釋要求,創(chuàng)建checkTakeRun函數(shù)。

那么我們根據(jù)關(guān)卡要求,來定義checkTakeRun函數(shù)。在第16行,我們能夠看到,系統(tǒng)在調(diào)用checkTakeRun函數(shù)時(shí),傳入了一個(gè)變量,從這里能夠得知,我們要定義的checkTakeRun函數(shù),是帶有一個(gè)參數(shù)的函數(shù),用于接收英雄發(fā)現(xiàn)的物品并處理。那么我們在定義函數(shù)的時(shí)候,也需要為這個(gè)函數(shù)帶上一個(gè)參數(shù):

參數(shù)的名字我們可以任意設(shè)置一個(gè)便于識別的名字。然后根據(jù)注釋要求,完成函數(shù)的內(nèi)容,如果傳入的物品存在,則調(diào)用takeItem函數(shù)拾取物品,如果不在,就返回初始點(diǎn)。設(shè)置好以后,就能看到,原來的報(bào)錯(cuò)提示消失了,此時(shí)我們的代碼已經(jīng)沒有了任何錯(cuò)誤(圖4)。然而,點(diǎn)擊運(yùn)行,你會發(fā)現(xiàn)我們的英雄還是不能按要求完成任務(wù),通過關(guān)卡。

這是為什么呢?明明代碼已經(jīng)按注釋要求填寫,并且沒有產(chǎn)生任何錯(cuò)誤了,為什么我們的英雄還是沒法完成關(guān)卡?想一想,本關(guān)的名字叫做“目光短淺的警衛(wèi)”,這個(gè)“目光短淺”指的可不僅僅是在守護(hù)寶藏的大怪物。

誠然,你的代碼已經(jīng)沒有任何問題了,但在現(xiàn)實(shí)中,我們的程序常常需要根據(jù)現(xiàn)實(shí)的情況,來做相應(yīng)的調(diào)整,以應(yīng)對各種情況,這就是我們代碼查錯(cuò)的第二個(gè)內(nèi)容了,我們還需要根據(jù)程序運(yùn)行時(shí)發(fā)生的特殊情況,來調(diào)整我們的程序。

三、 知識點(diǎn):代碼查錯(cuò)與修正(二)

既然錯(cuò)誤是游戲中的突發(fā)情況導(dǎo)致的,那么我們就需要觀察游戲過程,分析問題所在:可以發(fā)現(xiàn),我們英雄失敗的原因是,在來到右上方X標(biāo)記點(diǎn)時(shí),撿到了寶藏,隨后直接從上方小路穿過,碰到了守衛(wèi),直接被擊敗(圖5)。

我們的函數(shù)里,有編寫當(dāng)英雄沒有發(fā)現(xiàn)金幣時(shí),立即返回初始點(diǎn)的代碼,但發(fā)現(xiàn)金幣后,我們只是調(diào)用了takeItem函數(shù),拾取了金幣,隨后函數(shù)就結(jié)束了,再沒有其他動作了,那么再看到我們的循環(huán):

這段代碼,大家此刻都已經(jīng)明白,它是讓英雄先前往左側(cè)(18行代碼),調(diào)用checkTakeRun函數(shù),函數(shù)運(yùn)行結(jié)束,回到了初始點(diǎn),然后執(zhí)行21行代碼,去往右側(cè),調(diào)用函數(shù)。

當(dāng)我們的英雄前往右側(cè)時(shí),調(diào)用了checkTakeRun函數(shù),發(fā)現(xiàn)了寶藏,并拾取了寶藏,函數(shù)結(jié)束,那么此時(shí)英雄的下一步是什么?

23行代碼結(jié)束,根據(jù)循環(huán),英雄將執(zhí)行第18行代碼,直接前往左側(cè)X標(biāo)記點(diǎn)。那么這樣就會導(dǎo)致英雄和敵人正面相遇,發(fā)生戰(zhàn)斗。這就是問題的所在,因此,我們就需要解決問題,思路如下:

要避免戰(zhàn)斗,就要避免英雄和敵人相遇,那么我們就不能直接從右側(cè)標(biāo)記點(diǎn)前往左側(cè),應(yīng)該是先回到初始點(diǎn),再前往左側(cè)標(biāo)記點(diǎn)。因此過關(guān)方法也就清晰明了了,我們只需要在checkTakeRun函數(shù)內(nèi)略作修改:

當(dāng)英雄發(fā)現(xiàn)并拾取了寶藏后,新增一條代碼,讓英雄返回初始點(diǎn),如此便可順利通關(guān),通關(guān)代碼見(圖6)。

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
基于VMM的程序行為異常檢測
偵查實(shí)驗(yàn)批準(zhǔn)程序初探
我國刑事速裁程序的構(gòu)建
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲熟女中文字幕男人总站| 亚洲高清在线播放| 毛片手机在线看| 国产91丝袜| 综合久久五月天| 热99re99首页精品亚洲五月天| 亚洲aaa视频| 欧美福利在线播放| 日韩无码视频网站| 中文字幕首页系列人妻| 久久这里只精品热免费99| www.狠狠| 日韩福利在线观看| 亚洲久悠悠色悠在线播放| 在线观看91香蕉国产免费| 国产一区二区网站| 国产欧美精品一区aⅴ影院| 亚洲色图欧美激情| 高清不卡一区二区三区香蕉| 青草精品视频| 亚洲国产综合精品一区| 精品精品国产高清A毛片| 日韩中文无码av超清| 亚洲无码高清免费视频亚洲| 国产成a人片在线播放| 国产幂在线无码精品| 日韩av资源在线| 91精品国产情侣高潮露脸| 日韩无码白| 日韩国产高清无码| 国产永久无码观看在线| 欧美成人日韩| 日韩天堂在线观看| 国产成人av大片在线播放| 午夜精品久久久久久久2023| 亚洲天堂区| 色偷偷男人的天堂亚洲av| 亚洲欧美另类视频| 91久久偷偷做嫩草影院| 色综合网址| 亚洲免费成人网| 久久这里只有精品8| 亚洲无码视频喷水| 国产精品视屏| 乱系列中文字幕在线视频| 久久天天躁狠狠躁夜夜躁| 色久综合在线| 中文字幕佐山爱一区二区免费| 特级做a爰片毛片免费69| 99热这里只有精品免费| 色屁屁一区二区三区视频国产| 精品午夜国产福利观看| 午夜无码一区二区三区| 高清无码手机在线观看| 久久www视频| 久热这里只有精品6| 99久久精品免费看国产电影| 伊人中文网| 老司机午夜精品网站在线观看 | 欧洲高清无码在线| 中文字幕在线不卡视频| a级毛片免费看| 成人福利在线观看| 中文字幕欧美日韩| 国产小视频免费观看| 国产精品成人一区二区不卡| 欧美性爱精品一区二区三区| 曰AV在线无码| 亚洲Av激情网五月天| 99精品免费欧美成人小视频| 欧美精品二区| 欧美激情视频二区| 国产黄网永久免费| 四虎国产精品永久一区| 亚洲精品无码在线播放网站| 欧美成人精品一级在线观看| 国产在线欧美| 午夜国产大片免费观看| 亚洲天堂区| AV老司机AV天堂| 日本不卡在线视频| 污视频日本|