?

借助電子表格輔助Python教學的實踐探索

2024-04-14 04:06馬素平
中學教學參考·理科版 2024年1期
關鍵詞:電子表格

馬素平

[摘 要]“算法與程序實現”是高中信息技術課程的必修內容,江蘇省高中信息技術學業水平測試要求學生必須掌握Python程序設計語言的基本應用。文章著重探索如何借助電子表格結構清晰的特點以及強大的內置函數和公式書寫功能,一步步清晰地展現算法設計過程,引領學生把握問題本質,順暢地寫出Python程序,全面提升他們的信息素養。

[關鍵詞]電子表格;Python教學;算法設計

[中圖分類號] ? ?G633.67 ? ? ? ? ? ?[文獻標識碼] ? ?A ? ? ? ? ?[文章編號] ? ?1674-6058(2024)02-0095-04

高中信息技術必修課程包括“數據與計算”和 “信息系統與社會”兩個模塊,其中“數據與計算”模塊又包括數據與信息、數據處理與應用、算法與程序實現三個方面?!八惴ㄅc程序實現”這部分內容主要是學習Python程序設計語言的基本應用。在Python的日常教學中,教師經常會遇到學生了解所需要解決的問題,但是用程序設計語言又無法準確表達出來的情況。高中生經過小學、初中的信息技術課程的學習,已經掌握了電子表格軟件的一些基本操作方法?;诖?,筆者結合案例研究如何借助電子表格輔助Python教學,一步步清晰地展現算法設計過程,引領學生把握問題本質,順暢地寫出Python程序,全面提升學生的信息素養。

一、借助電子表格結構清晰和運算功能強大的特點展示算法的執行過程,使問題迎刃而解

【案例1】生日宴會上,同學們計劃使用點燃的蠟燭(表示1)和未點燃的蠟燭(表示0)混排來表示壽星的年齡(二進制形式),請編程實現輸入一個年齡(十進制整數),將其轉化為對應的二進制數,從而幫助同學們知曉如何點燃蠟燭。

算法設計思路:了解十進制整數轉化為對應的二進制數的方法,即除以2倒過來取余數,直到商為0時止。假設輸入的十進制整數是10,那么對應的二進制數就是1010,執行過程如圖1所示。借助電子表格(如表1)引導學生理清思路。通過鍵盤輸入一個正整數并賦值給變量n,定義一個空字符串s,用來收集運算過程中產生的余數。因為10大于0,所以開始進行第一輪的操作:10除以2余數為0,s就變化為“0”,商為5,n的新值即為5。因為5大于0,所以開始進行第二輪的操作:5除以2余數為1,s就變化為“10”,商為2,n的新值即為2。以此類推,直到商為0,也就是n的新值為0時結束,最終s的值為“1010”。

借助表1的過程描述,能很方便地寫出程序代碼(如圖2)。運行程序,測試樣例,輸入十進制數10,則輸出二進制數1010。借助計算機系統中自帶的計算器程序,驗證結果的正確性,最終正確點燃蛋糕上的蠟燭(如圖3)。

電子表格的運算功能強大,當運算量較小時,我們也可以通過口算得出運算結果,但當運算量較大時,口算就不方便了,此時可以使用插入函數或書寫公式的方法來實現。例如,本案例中可使用mod(n,2)函數得到n除以2的余數,使用int(n/2)函數得到n除以2的商,且可利用自動填充功能進行列數據的填充。此案例借助電子表格結構清晰及運算功能強大的特點,逐步展示了算法的執行過程,使學生能夠輕松地編寫Python程序代碼。

二、借用電子表格強大的計算功能,將計算過程完整地呈現出來,使相似問題差異比較一目了然

【案例2】某投資者購買了10萬元的一年期理財產品,實際收益率為4.25%,由于產品一直在持續運作,投資者不按時贖回視為自動再投資。在收益率不變的情況下,至少多少年后投資可以翻倍?(達到20萬)

算法設計思路一:投資本金為100000,所以給money賦初值100000,1年后的資產money=100000*(1+0.0425)=104250,2年后的資產money= 104250*(1+0.0425)=108680.625……如表2所示。從中可以發現,每年的money新值都等于上一年的舊值乘以(1+0.0425),即money=money*(1+0.0425)。每投資一年,就判斷一下money新值是否小于200000,如果小于則繼續投資,否則投資已經翻倍,無須繼續投資,此時輸出已投資年份即可。具體的程序代碼圖4所示。

算法設計思路二:投資本金為100000,1年后總資產為money=100000*(1+0.0425),2年后的總資產值money=100000*(1+0.0425)*(1+0.0425)=100000*(1+0.0425)^2,3年后總資產money=100000*(1+0.0425)^3,如表3所示。定義一個變量year表示年份,初值為0,每經過一年year=year+1,同時判斷money的新值小于200000是否成立,若成立則繼續投資,若不成立則結束投資,退出循環體。具體程序代碼如圖5所示。

案例2屬于投資理財問題,在借助電子表格解決問題時我們需要知曉電子表格中乘方的表示符號為“^”,如第2年的總資產書寫公式為=100000*(1+0.0425)^2。而在編寫Python程序時用冪運算符“**”表示乘方,如循環體money=100000*(1+0.0425)**year。

【案例3】某投資者購買了10萬元一年期收益率為3.7%的銀行保證收益型理財產品。每年理財贖回后,他會提取2萬元用作生活所需,余下資金仍購買此種理財。在收益率不變的情況下,多少年后資金被全部取出?

算法設計思路:投資者的本金為100000,所以money的初值為100000,1年后用于投資的資產值money=初值*(1+0.037)-提取的20000=100000*(1+0.037)-20000=84250, 2年后用于投資的資產值money=1年后用于投資的資產值 *(1+0.037)-提取的20000=84250*(1+0.037)-20000=67830.625,如表4所示。因此,我們可以得出,每經過一年money新值的變化,可通過表達式money=money*(1+0.037)-20000求得。每經過一年,year=year+1,同時判斷money新值是否大于0,若大于0則繼續投資,否則結束投資,最后輸出共需投資的年份值。程序代碼如圖6所示。

此案例也屬于投資理財問題,相較案例2難度略有加深,但經過電子表格的助力,思路變得逐漸清晰,問題也就迎刃而解了。

【案例4】某投資者購買了一年期收益率為3.7%的銀行保證收益型理財產品。每年理財贖回后,他會提取2萬元用作生活所需,余下資金仍購買此種理財。在收益率不變的情況下,投資者投入多少錢可以恰好在第10年取完最后一次2萬元?

算法設計思路:因為需要計算的是投資本金,所以可以采用逆推的方法。該案例中共涉及三個變量:投資年份year,每年用于流動投資的金額money,以及由流動投資金額加上提取的20000得到的總資產,值為money+20000。因此新建一個電子表格,在工作表第一行輸入列標題year、money流動投資金額、總資產。第10年因為已取完,所以能夠用于流動投資的金額為0,則總資產=第10年的流動投資金額+20000=0+20000=20000;第9年的流動投資金額=第10年的總資產/(1+0.037)=19286.40309,總資產=第9年的流動投資金額+20000=19286.40309+20000=39286.40309;第8年的流動投資金額=第9年的總資產/(1+0.037)=39286.40309/(1+0.037)= 37884.67029,總資產=第8年的流動投資金額+20000= 37884.67029+20000= 57884.67029;同理,可以依次求出第7年、第6年……第0年(即初期投資)的投資金額,整個運算過程如表5所示。

厘清整個運算過程之后,開始編寫程序,定義一個變量money表示每年的流動投資金額,逆推money的變化過程。第10年因為已取完,所以money=0,總資產為money+20000。我們需要依次求得第9年,第8年,…,第1年,第0年(初期投資)的流動投資金額,所以使用range(9,-1,-1)產生一個整數序列9,8,7,6,5,4,3,2,1,0,定義一個循環變量i表示年份,i依次取序列中的每一個值,第一次i=9, 執行循環體money=(money+20000)/(1+0.037)得到第9年的流動投資金額,第二次i=8,執行循環體得到第8年的流動投資金額……最后一次i=0,執行循環體得到初期投資金額。編寫代碼如圖7所示,運行程序,輸出結果為:初期投資 164667.90624925977 元。

以上三個案例同屬于投資理財問題,且難度逐漸加大。教師借助電子表格展示整個解題思路,使學生不再畏懼難題,能夠輕松編寫Python程序代碼。

三、借助電子表格的公式計算及自動填充功能,模擬大腦思維全過程,使解題思路清晰明了

【案例5】有一根長度為321米的鋼材,要將它截成a、b兩種規格的長度分別為17米和27米的短料,每種至少1段,問a、b兩種規格的短料各分割成多少段后,剩余的殘料r最少?

算法設計思路:先計算一下321米最多可以截取17米規格的短料數量18,此時剩余米數為321-17×18=15,不足以再截取27米規格的短料。因為題目要求每種規格至少1段,因此17米規格的短料數量不可能為18,故我們可以枚舉17米規格的短料段數a為1,2,…,17。每取一個值,我們都可以求得剩余鋼材可以截取的27米規格的短料段數b的值,以及剩余米數r,如表6所示。定義一個變量minr用來存放r的最小值,minr賦初值為16(實際上可以任取 [16,321]區間內的一個數)。用每次求得的剩余米數r和minr作比較,如果r

數字化環境下的問題解決,就是有效利用數字化技術和信息系統解決生活中的實際問題。通過在多個案例中強化使用電子表格,可以明顯看到電子表格除結構清晰的優點外,還有強大的運算功能,其中插入公式、插入函數及數據自動填充等功能尤其實用。在教師使用電子表格輔助Python教學的過程中,電子表格的多種功能也越來越被學生所熟悉。教師應有效利用數字化技術輔助信息技術課程教學,培養學生利用信息技術解決實際問題的能力,全面提升學生的“數字化學習與創新”核心素養。

[ ? 參 ? 考 ? 文 ? 獻 ? ]

[1] ?教育部基礎教育課程教材專家工作委員會,普通高中信息技術課程標準修訂組.普通高中信息技術課程標準(2017年版2020年修訂)解讀[M].北京:高等教育出版社,2020.

(責任編輯 黃春香)

猜你喜歡
電子表格
以電子表格為主線的高職院?!按髮W計算機信息技術”課程的教學探索
電子表格的自動化檢測
電子表格的自動化檢測
淺談電子表格技術在人事管理中的應用
淺談在電子表格中VLOOKUP函數的應用
巧用電子表格與手機短信進行對賬
電子表格音樂合成器
基于Excel電子表格的體育成績統計軟件設計
淺談電子表格在檔案管理活動中的運用
在信息科技教學中滲透學科歷史的實踐與思考
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合