![2023-2024學(xué)年教科版(2019)高中信息技術(shù)學(xué)業(yè)水平合格性考試復(fù)習(xí)講義-淺談Python程序設(shè)計(jì)與計(jì)算思維_第1頁(yè)](http://file4.renrendoc.com/view/6bc6b9e1ad54d108453a39ac896ba126/6bc6b9e1ad54d108453a39ac896ba1261.gif)
![2023-2024學(xué)年教科版(2019)高中信息技術(shù)學(xué)業(yè)水平合格性考試復(fù)習(xí)講義-淺談Python程序設(shè)計(jì)與計(jì)算思維_第2頁(yè)](http://file4.renrendoc.com/view/6bc6b9e1ad54d108453a39ac896ba126/6bc6b9e1ad54d108453a39ac896ba1262.gif)
![2023-2024學(xué)年教科版(2019)高中信息技術(shù)學(xué)業(yè)水平合格性考試復(fù)習(xí)講義-淺談Python程序設(shè)計(jì)與計(jì)算思維_第3頁(yè)](http://file4.renrendoc.com/view/6bc6b9e1ad54d108453a39ac896ba126/6bc6b9e1ad54d108453a39ac896ba1263.gif)
![2023-2024學(xué)年教科版(2019)高中信息技術(shù)學(xué)業(yè)水平合格性考試復(fù)習(xí)講義-淺談Python程序設(shè)計(jì)與計(jì)算思維_第4頁(yè)](http://file4.renrendoc.com/view/6bc6b9e1ad54d108453a39ac896ba126/6bc6b9e1ad54d108453a39ac896ba1264.gif)
![2023-2024學(xué)年教科版(2019)高中信息技術(shù)學(xué)業(yè)水平合格性考試復(fù)習(xí)講義-淺談Python程序設(shè)計(jì)與計(jì)算思維_第5頁(yè)](http://file4.renrendoc.com/view/6bc6b9e1ad54d108453a39ac896ba126/6bc6b9e1ad54d108453a39ac896ba1265.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高中信息技術(shù)學(xué)考復(fù)習(xí)——淺談Python程序設(shè)計(jì)與計(jì)算思維“計(jì)算思維”對(duì)大家來(lái)講是個(gè)比較陌生的詞匯,為了方便理解,我們可以簡(jiǎn)單地從字面意思角度加以分析,將其分解為兩個(gè)詞:“計(jì)算”和“思維”,這其中的“思維”相對(duì)好理解,但是“計(jì)算”往往會(huì)被狹隘地理解為加減乘除,也就是說(shuō)容易錯(cuò)誤地將其等同于數(shù)學(xué)中的計(jì)算。實(shí)際上,該“計(jì)算”的內(nèi)涵要更加寬泛,它不僅涵蓋了數(shù)學(xué)中的計(jì)算,同時(shí)還包括人們分析和解決實(shí)際問(wèn)題的一系列的方法和步驟,比如,我們解決諸如日常生活中的穿衣吃飯等問(wèn)題,本質(zhì)上也是“計(jì)算”,同樣也需要運(yùn)用“計(jì)算思維”。在日常工作、學(xué)習(xí)和生活中充斥著各種各樣的問(wèn)題,無(wú)不需要我們及時(shí)、正確地解決,具備一定的“計(jì)算思維”能力,并逐步加以提升,有助于我們更加科學(xué)、合理和高效地解決實(shí)際問(wèn)題。運(yùn)用“計(jì)算思維”的思想解決實(shí)際問(wèn)題,簡(jiǎn)單的看就是在對(duì)問(wèn)題進(jìn)行深入細(xì)致地分析的基礎(chǔ)上,首先將一個(gè)大的復(fù)雜的問(wèn)題,分解為若干小的簡(jiǎn)單的問(wèn)題,如果分解后的問(wèn)題仍然比較大和復(fù)雜,就繼續(xù)分解,直到簡(jiǎn)單和小到能直接解決為止。其次是確定一個(gè)解決問(wèn)題的粗略的方法和步驟,再對(duì)粗略的步驟反復(fù)進(jìn)行進(jìn)一步的細(xì)化,直到每一個(gè)步驟都能很容易的完成為止。而這與計(jì)算機(jī)程序設(shè)計(jì)的思想有著極高的契合度,所以說(shuō),學(xué)習(xí)程序設(shè)計(jì)是培養(yǎng)和提高“計(jì)算思維”能力的最有效的途徑之一。下面我們通過(guò)設(shè)計(jì)程序,解決人與計(jì)算機(jī)之間玩“石頭剪刀布”游戲的人機(jī)博弈問(wèn)題,做一個(gè)簡(jiǎn)單的闡述。大家應(yīng)該對(duì)“石頭剪刀布”這一猜拳游戲都比較熟悉,該游戲一般由兩個(gè)人玩,每一局都是兩個(gè)人同時(shí)出石頭、剪刀或布中的任意一個(gè),按照石頭贏剪刀、剪刀贏布、布贏石頭的規(guī)則判定勝負(fù),可以一局定勝負(fù),也可以三局兩勝,或者五局三勝等。多局定勝負(fù)的問(wèn)題相對(duì)比較復(fù)雜一些,但我們可以運(yùn)用“計(jì)算思維”的思想,將其簡(jiǎn)化,先考慮解決一局定勝負(fù)的問(wèn)題,然后運(yùn)用循環(huán)控制一局定勝負(fù)的程序代碼段執(zhí)行若干次,并相應(yīng)地做好勝負(fù)局?jǐn)?shù)的統(tǒng)計(jì)計(jì)數(shù)工作即可。以下是關(guān)于一局定勝負(fù)情況的討論。游戲的關(guān)鍵點(diǎn)主要有兩點(diǎn),一是兩個(gè)人所出的拳是什么,二是判定勝負(fù)的規(guī)則。實(shí)際生活場(chǎng)景中,兩個(gè)人之間玩該游戲時(shí),石頭、剪刀、布可以通過(guò)從口中喊出來(lái),也可以用手勢(shì)表示,勝負(fù)則直接由人來(lái)判斷,而人與計(jì)算機(jī)之間玩該游戲,實(shí)質(zhì)上,就是把兩個(gè)人中的一個(gè)變成計(jì)算機(jī),出拳與勝負(fù)判斷保持不變。按計(jì)算思維的思想,首先來(lái)解決第一個(gè)關(guān)鍵點(diǎn),即人和計(jì)算機(jī)出的拳是什么的問(wèn)題。先考慮人,現(xiàn)實(shí)中兩個(gè)人之間游戲時(shí),出拳的信息是由口喊或手勢(shì)確定的,前者出拳信息的載體是音頻,后者的載體是圖像,這兩種載體形式讓計(jì)算機(jī)來(lái)判定到底是石頭、剪刀、布中的哪個(gè),需要通過(guò)諸如麥克風(fēng)、攝像頭等設(shè)備輸入到計(jì)算機(jī)中,并借助人工智能技術(shù)中的聲音識(shí)別或圖像識(shí)別完成,比較復(fù)雜,不是同學(xué)們當(dāng)下能夠完成的。同理,讓計(jì)算機(jī)喊出,或者用圖像顯示出石頭、剪刀、布,盡管相對(duì)容易一些,可同樣不是一件簡(jiǎn)單的事情??梢?jiàn),我們需要對(duì)如何確定和表示石頭、剪刀、布的問(wèn)題進(jìn)行進(jìn)一步研究。通過(guò)分析和抽象可知,石頭、剪刀、布本質(zhì)上是三個(gè)不同的符號(hào),是游戲中需要輸入的數(shù)據(jù),而Python中的簡(jiǎn)單數(shù)據(jù)類型不外乎數(shù)值型、字符型、邏輯型等,能否從這些基本類型中選擇其中的一種來(lái)表示石頭、剪刀、布呢?答案是肯定的,最簡(jiǎn)單直接的方法是用字符類型,用漢字的石頭、剪刀、布,當(dāng)然也可以用大家比較熟悉的相應(yīng)的英文單詞表示,但是考慮到字符類型無(wú)法進(jìn)行數(shù)學(xué)中諸如加減乘除等運(yùn)算,所以我們選擇用數(shù)值類型,即用三個(gè)整數(shù)0、1、2依次代表石頭、剪刀、布,這樣做的優(yōu)點(diǎn)是簡(jiǎn)單,而且還可以進(jìn)行數(shù)學(xué)計(jì)算,缺點(diǎn)是比較抽象。其次是勝負(fù)關(guān)系的判斷,依據(jù)人機(jī)出拳的組合,共有9種情況,如下面的表1所示。表1:表2:在確定好以表2的形式表示問(wèn)題后,接下來(lái)就需要考慮具體如何解決問(wèn)題了。按計(jì)算思維的思想,需要先確定解決問(wèn)題的粗略步驟。初步看大致需要以下三步:⒈輸入(Input),輸入人和計(jì)算機(jī)分別出的拳是石頭、剪刀、布中的哪一個(gè);⒉計(jì)算處理(Process),依據(jù)人和計(jì)算機(jī)的出拳,計(jì)算判定勝負(fù);⒊輸出(Output),輸出勝負(fù)結(jié)果。即通常所說(shuō)的IPO結(jié)構(gòu)。一、輸入的細(xì)化第一步先解決人的輸入,考慮到采用整數(shù)0、1、2依次代表石頭、剪刀、布,這樣約定盡管簡(jiǎn)單有效,但畢竟不直觀,由于不知道0、1、2到底是什么含意,所以可能會(huì)給玩游戲的人帶來(lái)困擾,解決方法是增加0、1、2含義的提示。第二步考慮計(jì)算機(jī)的輸入,即計(jì)算機(jī)如何出拳?實(shí)際上,計(jì)算機(jī)與人一樣,它應(yīng)該從石頭、剪刀、布(即0、1、2)中隨機(jī)地任意選取一個(gè),所以,可以用計(jì)算機(jī)中的隨機(jī)函數(shù)產(chǎn)生0、1、2三個(gè)數(shù)字中的任意一個(gè),代表計(jì)算機(jī)的出拳。二、計(jì)算處理的細(xì)化由表2可知,人機(jī)出拳的組合共有9種情況,分別用相應(yīng)的條件直接判斷就可以,比如:如果人出0(石頭),并且計(jì)算機(jī)也出0(石頭),則為平局。三、輸出的細(xì)化輸出比較簡(jiǎn)單,只需要結(jié)合相應(yīng)的出拳情況判斷結(jié)果,直接輸出平局、人勝、機(jī)勝即可。于是,我們可以得到如下的Python源程序代碼。顯然,上述程序可以采用條件語(yǔ)句的嵌套形式進(jìn)行優(yōu)化,此處不再贅述。上述程序盡管可以完成人機(jī)之間玩石頭剪刀布的游戲,但是在勝負(fù)結(jié)果的判定上使用了9條條件語(yǔ)句,不僅繁瑣,而且效率低下,有待改進(jìn)。為此,我們進(jìn)一步分析表1,可以看出,勝負(fù)結(jié)果有3種情況,分別是:平局、機(jī)勝、人勝,仿照石頭、剪刀、布依次用整數(shù)0、1、2表示,勝負(fù)結(jié)果中的平局、機(jī)勝、人勝也依次用整數(shù)0、1、2表示,于是可以得到如下表3所示的判斷勝負(fù)的表。表3:如果把表示勝負(fù)結(jié)果的數(shù)字連接到一起,可以得到一個(gè)數(shù)字串“021102210”,把它存儲(chǔ)到一個(gè)字符串中,再依據(jù)人機(jī)出拳的數(shù)值換算出其在字符串中的位置(表4),取出存儲(chǔ)勝負(fù)結(jié)果字符串中相應(yīng)位置上的字符,就能得出勝負(fù)結(jié)果了。表4:經(jīng)過(guò)分析和歸納總結(jié),可以得到如下的公式(函數(shù)):p=3*i+j(其中,i表示人的出拳,j表示計(jì)算機(jī)的出拳,p表示該出拳組合對(duì)應(yīng)的判定勝負(fù)字符串中的位置。例如,人出剪刀(i=1),計(jì)算機(jī)出布(j=2),代入公式可得:p=3*i+j=3*1+2=5,字符串5號(hào)位置上存儲(chǔ)的是字符“2”,即人勝(注:Python中字符串中第一個(gè)字符的位置編號(hào)為0)。改進(jìn)后的程序如下。上述程序中,人和計(jì)算機(jī)出的拳采用0、1、2表示,不夠直觀,需要改進(jìn)。另外,勝負(fù)關(guān)系用一個(gè)如下表5所示的二維表的形式描述,更容易理解。但這兩點(diǎn)都需要我們進(jìn)一步學(xué)習(xí)Python中更多的數(shù)據(jù)類型,尤其是列表類型,才能有效解決。在學(xué)習(xí)列表類型后,可以知道,人機(jī)的出拳可以用一個(gè)一維列表表示,勝負(fù)關(guān)系的判定可以采用一個(gè)二維列表。
將數(shù)據(jù)用相應(yīng)的列表表示后,可以得到如下的代碼??梢钥闯?,引入列表后編寫的程序更加簡(jiǎn)捷高效了。其實(shí),真正高效的程序應(yīng)該是從數(shù)學(xué)角度作深入的研究,將計(jì)算處理部分盡可能地用數(shù)學(xué)中的公式(函數(shù))表示。對(duì)上述表3中的數(shù)據(jù)進(jìn)行更加深入地研究,得到表6的結(jié)果。表6:觀察表6可以看出:i-j的值有6種情況與勝負(fù)結(jié)果w相同,另外3種不一樣的序號(hào)分別為:1、2、5,他們共同的特點(diǎn)是:依據(jù)i-j的結(jié)果,大于等于0的與勝負(fù)結(jié)果一致,小于0的不一致。進(jìn)一步研究i-j小于0的三種情況,可以發(fā)現(xiàn),如果用(i-j)+3就與結(jié)果一致了。直觀的想法是采用數(shù)學(xué)中的分段函數(shù):該分段函數(shù)在Python中可以直接用條件語(yǔ)句實(shí)現(xiàn)。程序大家可以自己編寫。下面我們把表6中增加一行i-j+3的計(jì)算結(jié)果,得到表7,再進(jìn)行研究。表7:可以發(fā)現(xiàn),如果取((i-j)+3)除以3的余數(shù),就與勝負(fù)結(jié)果一致了!也就是表8。表8:可見(jiàn)人出拳的數(shù)值i,計(jì)算機(jī)出拳的數(shù)值j,與勝負(fù)判定的數(shù)值w,存在如下函數(shù)關(guān)系:w=((i-j)+3)%3
(%表示模余運(yùn)算,即取余數(shù))例如,人出剪刀(i=1),計(jì)算機(jī)出布(j=2),代入如上的代數(shù)式,可得:w=((i-j)+3)%3=((1-2)+3)%3=2(人勝)為了使輸出更加直觀,我們引入一個(gè)表示勝負(fù)的一維列表,代碼如下。需要指出的是,由于Python中直接對(duì)負(fù)數(shù)進(jìn)行模余運(yùn)算得到的余數(shù)與勝負(fù)結(jié)果的數(shù)值一樣,所以在上述程序中“計(jì)算勝負(fù)結(jié)果對(duì)應(yīng)的數(shù)值”的語(yǔ)句可以直接寫為:iWin=(iFingerOfPerson-iFingerOfComputer)%3程序運(yùn)行結(jié)果也正確。以上所有的程序代碼中,都僅僅是提示用戶輸入0、1、2,但萬(wàn)一有人不小心輸入了一個(gè)其他的數(shù)字或字符,就會(huì)引發(fā)程序錯(cuò)誤,為此,我們需要對(duì)人的輸入進(jìn)行檢測(cè),強(qiáng)制其只能輸入0、1、2,直到其輸入正確為止,也就是說(shuō)在人輸入錯(cuò)誤的情況下,要求
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年度環(huán)保設(shè)備研發(fā)項(xiàng)目委托合同
- 遼寧2025年遼寧中醫(yī)藥大學(xué)附屬醫(yī)院招聘42人筆試歷年參考題庫(kù)附帶答案詳解
- 蘇州江蘇蘇州大學(xué)科研助理崗位招聘9人筆試歷年參考題庫(kù)附帶答案詳解
- 百色2025年廣西百色學(xué)院招聘195人筆試歷年參考題庫(kù)附帶答案詳解
- 溫州浙江溫州市司法局招聘行政復(fù)議輔助人員筆試歷年參考題庫(kù)附帶答案詳解
- 杭州浙江杭州市余杭區(qū)良渚杭行幼兒園招聘合同制教師19人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)多功能數(shù)字功放式調(diào)音臺(tái)市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)頂置式沙缸行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國(guó)編織纏繞耐熱膠管行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年生命體癥檢測(cè)儀項(xiàng)目可行性研究報(bào)告
- 門脈高壓性消化道出血的介入治療課件
- 民航保密培訓(xùn)課件
- 血庫(kù)輸血培訓(xùn)課件
- 詩(shī)詞寫作入門
- 學(xué)校教育中的STEM教育模式培訓(xùn)課件
- 《酒店客房管理課件》
- 電器整機(jī)新產(chǎn)品設(shè)計(jì)DFM檢查表范例
- 樁基礎(chǔ)工程文件歸檔內(nèi)容及順序表
- 《公路路基路面現(xiàn)場(chǎng)測(cè)試規(guī)程》(3450-2019)
- 不同產(chǎn)地半夏總生物堿含量測(cè)定
- 2023年新疆中考數(shù)學(xué)試卷真題及答案
評(píng)論
0/150
提交評(píng)論