《23周而復(fù)始的循環(huán)學(xué)案》由會(huì)員分享,可在線閱讀,更多相關(guān)《23周而復(fù)始的循環(huán)學(xué)案(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、根據(jù)前面我們學(xué)過(guò)的知識(shí)我們知道程序的結(jié)構(gòu)有順序結(jié)構(gòu)、分支 結(jié)構(gòu)和循環(huán)結(jié)構(gòu)之分
還記得小時(shí)候,當(dāng)雪花漫天飛舞的時(shí)候,當(dāng)鞭炮噼里啪啦響起的 時(shí)候,當(dāng)香噴噴的餃子端到桌面上的時(shí)候,當(dāng)新年的鐘聲敲響的時(shí)候, 我們每一個(gè)人更期盼一件什么呢?一到過(guò)新年的時(shí)候我們都期盼收 到什么呢?(紅包),對(duì),我們都想收到一個(gè)大大的紅包!假如你收 到了一個(gè)五萬(wàn)的紅包,你將如何來(lái)處理呢?立即花掉嗎?還是交給爸 爸媽媽?其實(shí)呢我們通常采取的方式就是存到銀行里面做理財(cái),這樣 問(wèn)題就出來(lái)了,如果讓你把這五萬(wàn)元都存到銀行里面,假定按一年的 定期自動(dòng)轉(zhuǎn)存這種方式來(lái)存,而且五年內(nèi)利率不會(huì)發(fā)生變化,都是 3.25%,那我們最關(guān)心的是什
2、么呢?就是五年以后存錢會(huì)變成多少? 你會(huì)算嗎?怎么來(lái)算??? 注意,1 年定期自動(dòng)轉(zhuǎn)存,第一年的會(huì)算 嗎?那第二年呢?就是在第一年存款的基礎(chǔ)上再乘以 1+(3.25%), 一次類推,五年以后可以算出存款總額是58670,這就是計(jì)算五年存 款的方法,大家想一下,如果我要計(jì)算10年 20年后的存款總額,這 樣算起來(lái)還是比較麻煩呢,那利用我們的 python 有沒(méi)有更好的辦法 來(lái)算一算呢?大家注意看一下,我可以把5萬(wàn)賦值給變量money,把 利率0.0325給變量rate,然后用下面的賦值語(yǔ)句求出第一年的存款, 接著一次類推,用 print 語(yǔ)句把第五年的存款總額顯示出來(lái),這樣可 行不可行啊? 這個(gè)程
3、序我已經(jīng)發(fā)到大家的文件夾下了,下面大家都 打開(kāi)看一下,首先打開(kāi)第一個(gè)程序, 1.利率不變的順序結(jié)構(gòu)程序 (5 分 40 秒)
學(xué)生操作)怎么打開(kāi)代碼的編輯窗口呢?右擊選擇 edit ,打開(kāi)
就可以看到里面是我用順序結(jié)構(gòu)的方式編好的計(jì)算五年利率不變的 存款總額,請(qǐng)大家點(diǎn)擊 run 運(yùn)行看一下結(jié)果,當(dāng)我們運(yùn)行這個(gè)程序的 時(shí)候我們想一下,這是計(jì)算五年的存款,如果是計(jì)算十年五十年的會(huì) 不會(huì)非常麻煩? 這個(gè)時(shí)候啊 python 是非常智慧的,它又引入了一種 新的計(jì)算方法,那就是計(jì)數(shù)循環(huán),那么計(jì)數(shù)循環(huán)是怎樣做的呢?
我先來(lái)給大家演示一下這個(gè)程序,打開(kāi)程序1我們先演示一下 輸出結(jié)果,那么怎么樣用一種更
4、簡(jiǎn)便的方法來(lái)做呢?我把需要循環(huán)執(zhí) 行的這一行代碼留下,把其余的刪掉,然后加入一行代碼
for i in [1,2,3,4]: 有同學(xué)就想這行代碼是干嘛的,你先不要管它 是干啥的,我們先來(lái)看一下它的結(jié)果,這個(gè)時(shí)候不要忘記這行代碼的 最后面有一個(gè): ,然后讓執(zhí)行重復(fù)運(yùn)行的這部分自動(dòng)縮進(jìn)字符,然 后運(yùn)行看一下結(jié)果,和剛才是一樣的,那現(xiàn)在我們看這個(gè)代碼是非常 簡(jiǎn)便的,它由五行代碼甚至是五十行代碼可以改成這一行代碼,那么 大家看一下這行重復(fù)執(zhí)行的代碼money二money*(1+rate)是怎樣執(zhí)行 的呢?這就要用到我們這節(jié)課要學(xué)習(xí)的內(nèi)容<計(jì)數(shù)循環(huán)算收益〉。(切 換到PPT)我們還是返回到剛才的問(wèn)題看
5、一下,同學(xué)們注意看紅色標(biāo) 注這行代碼就是反復(fù)執(zhí)行的語(yǔ)句,將五十行語(yǔ)句合成一行語(yǔ)句的就是 這行代碼,它就叫循環(huán)體,那么大家看一下實(shí)際上程序在運(yùn)行的時(shí)候 它會(huì)怎么運(yùn)行呢?首先讀取1,在讀取1的時(shí)候就執(zhí)行一次這行代碼, 接著在讀取 2 的時(shí)候再運(yùn)行一次這行代碼,依次類推再讀取 3,4,5, 總共執(zhí)行 5 次,直到上面列表中的元素被讀取完。那么什么是列表呢
10 分鐘)列表就是一列數(shù)據(jù),這一列數(shù)據(jù)大家看一下,就像是放
到小櫥子里的東西一樣,我們給小櫥子編號(hào),因?yàn)槭菑? 開(kāi)始的,依 次給小廚子編了 0 號(hào),1 號(hào),2 號(hào),3 號(hào)數(shù)據(jù) 那么這組數(shù)據(jù)就叫做
列表的索引號(hào),那么列表呢也可以賦值給變量 X
6、,X 就代表是這一組 數(shù)據(jù),如果是我print X,就會(huì)把這一組數(shù)據(jù)顯示出來(lái),這就叫列表, 那么在上面的循環(huán)語(yǔ)句里面大家看一下,它是列表里面的數(shù)據(jù)依次被 循環(huán)變量讀取,讀一次下面循環(huán)執(zhí)行一次,讀一次下面執(zhí)行一次,讀 五次正好循環(huán)五次,那么這種循環(huán)就叫做計(jì)數(shù)循環(huán),通常使用for語(yǔ) 句來(lái)創(chuàng)建這類循環(huán),它的語(yǔ)句的基本格式就是這樣的:(ppt8)大家 記住循環(huán)的語(yǔ)句也就是循環(huán)體一定要相對(duì)于關(guān)鍵詞for有縮進(jìn),下面 我們一起來(lái)看一下這個(gè)例子 for i in [1, 2, 3, 4,“a”,”b”,”c”]:
( 13 分鐘)
For讓循環(huán)變量是i依次讀取1,2,3,4, “a”,” b”,” c”
7、,最 后 print 把它顯示出來(lái),下面我們看一下這個(gè)程序的運(yùn)行結(jié)果是什么 樣子的,新建一個(gè)(切換到python)代碼編輯窗口,手動(dòng)輸入
for i in [1, 2, 3, 4,“a” ,” b” ,” c” ]: 運(yùn)行查看結(jié)果,這 就計(jì)數(shù)循環(huán)的工作機(jī)理,大家注意看一下,第一次把 1 給 i , print1, 第二次把2給i,print2,把3給i, print3,依次是print a b c ,這就 是計(jì)數(shù)循環(huán),這個(gè)程序沒(méi)有發(fā)給大家,下面同學(xué)們自己輸入來(lái)編一下 這個(gè)程序 (14分鐘)
(學(xué)生操作 3 分鐘)引導(dǎo)學(xué)生完成輸入,提示同學(xué)們先點(diǎn)擊 new file 新建一個(gè)代碼的編輯窗口,
8、注意輸入時(shí) for 后面是循環(huán)變量 i in 列表,列表用方括號(hào)表示,括號(hào)內(nèi)輸入1, 2, 3, 4, “a”,” b”,” c”, 注意個(gè)元素用逗號(hào)隔開(kāi),輸abc字符串的時(shí)候用引號(hào)括起來(lái)… 我發(fā) 現(xiàn)有同學(xué)輸?shù)暮芸?完成后運(yùn)行演示一下,完成之后大家思考這個(gè)問(wèn) 題,我輸出123可以很快,但是要輸出123一直到100都顯示出來(lái)是 不是有些困難啊,那么python專門提供了一個(gè)函數(shù)來(lái)解決這個(gè)問(wèn)題
(17分鐘) 下面我給大家改寫一下程序大家再看一下
(老師切換到編輯器)輸入for i in range(10),顯示輸出0到9, range(20) 輸出 0到19,如果是輸入(10,20)呢,想想應(yīng)
9、該輸出什么, 11到19,演示輸出,跟我們預(yù)想的一樣,下面我們?cè)僮円幌拢?0,20,2), 這次輸出的是10 12 14 16 18,這是為什么呢?意思就是從10開(kāi)始一 次增加2一次增加2增加到 18,不能到 20,不能包含最后一個(gè)數(shù), 如果改成3會(huì)是什么結(jié)果?13 16 19 ,跟我們的猜想是一致的,好, 我們總結(jié)一下range函數(shù)就是可以生成某個(gè)范圍內(nèi)的數(shù)字列表,range 函數(shù)的基本格式是range(開(kāi)始值,結(jié)束值[,步長(zhǎng)]),開(kāi)始值默認(rèn)的是從0 開(kāi)始,可以省略,步長(zhǎng)默認(rèn)為1,也可以省略 (21分鐘)
下面請(qǐng)大家在自己的電腦上試一下range函數(shù)是怎樣完成這些輸 出的,弄清楚這兩個(gè)問(wèn)題
10、for循環(huán)語(yǔ)句也就清楚了,哪兩個(gè)問(wèn)題??? 就是for循環(huán)語(yǔ)句既可以用列表的形式,也可以用range函數(shù)的形式 來(lái)表示
(學(xué)生操作3+5分鐘) 提示學(xué)生在上次編寫程序的基礎(chǔ)上改
代碼就可以了,把列表改成range函數(shù)就行,...同學(xué)們輸數(shù)值的時(shí)候 不要把數(shù)值設(shè)置的太大,太大就運(yùn)行不出來(lái)了,就變成一個(gè)簡(jiǎn)單的病 毒了:)
有同學(xué)果真造了個(gè)病毒,運(yùn)行2 分鐘了還沒(méi)運(yùn)行完呢(24分鐘) 運(yùn)行完成后請(qǐng)大家打開(kāi)第 2個(gè)程序利率不變的循環(huán)結(jié)構(gòu)程序,運(yùn)行看 一下,怎么計(jì)算 5 年內(nèi)每年的存款收益,兩種方法就是列表和 range 函數(shù)的方法都給大家展示出來(lái)了,可以運(yùn)行輸出結(jié)果看是否一樣(26 分鐘)
運(yùn)行
11、完成后大家把 print 語(yǔ)句往右縮進(jìn)看運(yùn)行的結(jié)果,縮進(jìn)的時(shí) 候讓 print 和上面的 money 對(duì)其,不對(duì)其會(huì)出問(wèn)題的,完成后演示一 下會(huì)出現(xiàn)什么結(jié)果?發(fā)現(xiàn)什么問(wèn)題了?1 到 5 年的存款總額都輸出 了,為什么會(huì)出現(xiàn)這種結(jié)果呢?這就是因?yàn)閒or語(yǔ)句下面的循環(huán)體不 僅僅可以是一條語(yǔ)句,也是好幾條語(yǔ)句,這些語(yǔ)句都可以往右縮進(jìn), 而且縮進(jìn)后是對(duì)齊的,把 print 語(yǔ)句往右縮進(jìn)后計(jì)算機(jī)也任務(wù)這也是 要循環(huán)的語(yǔ)句,計(jì)算一年循環(huán)一次,以此循環(huán)五次,輸出了五年的存 款總額,所以說(shuō)這個(gè)循環(huán)還是很方便的 (28 分鐘)
(老師講解 3 分鐘)好大家停一下,我們一起來(lái)看一下 ppt, 演示剛才計(jì)算利率不
12、變得時(shí)候輸出的每年的存款總額,這個(gè)問(wèn)題我們 先告一段落,下面我們?cè)賮?lái)看另外一個(gè)問(wèn)題,就是利率發(fā)生改變后計(jì) 算 5 年的存款總額,第一年的利率變?yōu)?3%, 3%, 2%,1.75%,對(duì)于這個(gè) 問(wèn)題我們同樣可以用前面的方法計(jì)算出 5 年的存款總額,那如果用順 序結(jié)構(gòu)的程序把它編輯出來(lái)就是右邊的代碼,這個(gè)代碼我把它放到了 第 3 個(gè)程序 3 利率變化順序結(jié)構(gòu)程序 中,大家打開(kāi)研究一下它的運(yùn)
算方法 (31 分鐘)
大家在研究的時(shí)候思考一下這個(gè)問(wèn)題:能不能在這個(gè)順序結(jié)構(gòu) 的程序上改變成用列表的方法執(zhí)行這個(gè)程序,用咱們上面學(xué)過(guò)的計(jì)數(shù) 循環(huán)列表的方法完成程序,直接在順序結(jié)構(gòu)的程序下面列就可以了, 以為
13、咱們這個(gè)界面可以支持多個(gè)程序的編輯。。。。。。。實(shí)際上這個(gè)利率 不一樣的用這個(gè)列表太方便了 (35 分鐘)
你可以依次把各年的利率第 1年第2年依次填到列表里面,依 次讀取的數(shù)給 for 后面的循環(huán)變量了,而變量你就讓它當(dāng)利率參與運(yùn) 算,你想想不就解決問(wèn)題了,剛才我看到有些同學(xué)已經(jīng)完成任務(wù)了, 實(shí)在是超乎老師的想想,如果有同學(xué)實(shí)在是做不出了可以參考 一下 4 利率變化循環(huán)結(jié)構(gòu)程序 ( 36 分鐘) 。。。。 41 分鐘
當(dāng)我們依次把每年的存款總額輸出的時(shí)候是不是發(fā)現(xiàn)后面的 小數(shù)比較多?我們就想到要四舍五入,在 python 中有一個(gè)函數(shù)可以 執(zhí)行這個(gè)功能,就是round函數(shù),在第四個(gè)程序里面(4函數(shù))
總結(jié)這節(jié)課學(xué)的內(nèi)容(小結(jié))