馬艷平 宋艷 路致遠(yuǎn)
摘要:在Excel函數(shù)學(xué)習(xí)和使用中,普遍存在函數(shù)種類繁多、分類復(fù)雜、功能不清諸多問題,既容易出現(xiàn)混淆,又不能使學(xué)員迅速完成任務(wù)。鑒于這樣問題的存在,該文設(shè)計(jì)了基于Python語(yǔ)言下函數(shù)學(xué)習(xí)系統(tǒng)來(lái)解決上述問題,為學(xué)員提供一種簡(jiǎn)單、便捷、科學(xué)的學(xué)習(xí)平臺(tái)。
關(guān)鍵詞:Python;Excel函數(shù);學(xué)習(xí)系統(tǒng)
中圖分類號(hào):TP317? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)06-0060-03
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
1 概述
20世紀(jì)40年代初,深度學(xué)習(xí)思維已經(jīng)成為高端人士的學(xué)習(xí)思維模式,但普及這一學(xué)習(xí)思維模式始終未能實(shí)現(xiàn),隨著信息化時(shí)代的到來(lái),人們對(duì)學(xué)習(xí)效率和方法有了更高的要求,特別是程序設(shè)計(jì)語(yǔ)言備受關(guān)注當(dāng)下,迫切需要通過基于程序設(shè)計(jì)的方式來(lái)改變這種狀況,使得學(xué)習(xí)簡(jiǎn)便化、人性化。Excel是Office 辦公自動(dòng)化主要軟件之一,主要功能是處理電子表格,尤其對(duì)表格中各種復(fù)雜的數(shù)據(jù)處理、統(tǒng)計(jì)分析和輔助決策等功能,受到大家的青睞,因而廣泛地應(yīng)用于管理、統(tǒng)計(jì)、財(cái)經(jīng)、金融等眾多領(lǐng)域[1]。對(duì)于高職院校學(xué)員而言,要想實(shí)現(xiàn)上述功能,發(fā)揮Excel的數(shù)據(jù)處理強(qiáng)大優(yōu)勢(shì),函數(shù)的學(xué)習(xí)是基礎(chǔ)任務(wù),也是Excel學(xué)習(xí)的重點(diǎn)和難點(diǎn)。如何讓學(xué)員在學(xué)習(xí)Excel函數(shù)過程中迅速掌握函數(shù)使用方法,提高學(xué)習(xí)效率,是教育工作者一直在研究的問題。其中Excel函數(shù)(2010版)多達(dá)411個(gè)函數(shù),分為12類別,主要有財(cái)務(wù)、統(tǒng)計(jì)、日期與時(shí)間等類型。詳見如表1所示。
1) 開發(fā)的語(yǔ)言Python作為一種先進(jìn)的計(jì)算機(jī)語(yǔ)言,具有簡(jiǎn)潔、易讀、可擴(kuò)展等特性[2],被各個(gè)企業(yè)廣泛應(yīng)用,同時(shí)Phthon 具有豐富且強(qiáng)大的庫(kù),它最大的優(yōu)點(diǎn)是接近自然語(yǔ)言,能將作者的思維逐條實(shí)踐檢驗(yàn),然后在IDLE平臺(tái)將若干條語(yǔ)言整合成為一個(gè)子段,完成從學(xué)習(xí)過渡到實(shí)踐。由于擴(kuò)展性好,可將其他語(yǔ)言制作的各種模塊進(jìn)行聯(lián)合,如 Java、C++ 等計(jì)算機(jī)語(yǔ)言,同時(shí)也是新手一個(gè)低門檻低成本的學(xué)習(xí)語(yǔ)言的模式。Python 編程應(yīng)用最常見的一種方式就是,第一步用 Python 形成模塊化程序,然后用更合適的其他語(yǔ)言對(duì)其中的內(nèi)容進(jìn)行填寫,最后封裝,非常適合做一些簡(jiǎn)單的短時(shí)間的小程序系統(tǒng)開發(fā)[3]。
2) 開發(fā)平臺(tái)采用Windows7+ Python3.6,Python 作為腳本語(yǔ)言,運(yùn)用廣泛,無(wú)論是基礎(chǔ)的程序處理、數(shù)據(jù)爬蟲,還是 Web 開發(fā)以及游戲設(shè)計(jì)等[4],是一款開發(fā)效率很高的軟件。因此,本研究基于高職學(xué)生學(xué)習(xí)Excel函數(shù)需求進(jìn)行功能設(shè)計(jì),實(shí)現(xiàn)以需求為標(biāo)的導(dǎo)向的學(xué)習(xí),提高學(xué)習(xí)效率。
2 學(xué)習(xí)系統(tǒng)總體構(gòu)想和設(shè)計(jì)
本系統(tǒng)采用了C/S架構(gòu)模式,結(jié)合Python的環(huán)境下進(jìn)行開發(fā),主要針對(duì)學(xué)習(xí)Excel函數(shù)時(shí)所遇問題進(jìn)行設(shè)計(jì)功能,比如:利用功能找函數(shù)、背函數(shù)、糾錯(cuò)函數(shù)等功能。
1) C/S體系結(jié)構(gòu)
C/S 架構(gòu)基于兩層分布式結(jié)構(gòu)[5],服務(wù)器負(fù)責(zé)數(shù)據(jù)的管理,客戶機(jī)負(fù)責(zé)完成與用戶的交互任務(wù)。第一層服務(wù)器負(fù)責(zé)客戶機(jī)的響應(yīng),接受請(qǐng)求,以數(shù)據(jù)庫(kù)的形式反饋給客戶端,給客戶端提供數(shù)據(jù)管理、更新,實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢、修改、存儲(chǔ)等功能并傳給客戶端。第二層客戶機(jī)主要負(fù)責(zé)向服務(wù)器端提出訴求,請(qǐng)問題反饋給服務(wù)器層,并等待處理結(jié)果。C/S體系結(jié)構(gòu)如圖1所示。
2) 系統(tǒng)功能簡(jiǎn)介
本系統(tǒng)的設(shè)計(jì)是為了提高學(xué)員學(xué)習(xí)函數(shù)的效率,有效的利用函數(shù)解決實(shí)際問題的需求出發(fā),實(shí)現(xiàn)了學(xué)習(xí)的數(shù)字化、系統(tǒng)化及網(wǎng)絡(luò)化的目標(biāo),該系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計(jì)如圖2所示。
主函數(shù)中將“順序函數(shù)字典”轉(zhuǎn)換為二維列表,其中每個(gè)元素是一個(gè)的列表,包括函數(shù)名、功能及狀態(tài)標(biāo)記,初始默認(rèn)的狀態(tài)為“3”。依據(jù)用戶輸入的數(shù)字進(jìn)行功能選擇。
①函數(shù)F功能。該功能用戶通過輸入端輸入函數(shù)后,系統(tǒng)根據(jù)函數(shù)名稱在列表中負(fù)責(zé)找出該函數(shù)的功能,如有則輸出函數(shù)、功能及所處的狀態(tài)標(biāo)記,如沒有則顯示“無(wú)此函數(shù)”,返回主界面,讓用戶重新輸入。
②功能F函數(shù)。該功能用戶通過輸入端輸入需求(關(guān)鍵詞),系統(tǒng)根據(jù)輸入的關(guān)鍵詞在中找出對(duì)應(yīng)的函數(shù),如有該功能函數(shù),則輸出函數(shù)、功能及相應(yīng)的狀態(tài)參數(shù);如沒找到,則顯示查無(wú)此功能,返回主界面,讓用戶重新輸入。
③記函數(shù)。用戶輸入記憶單詞的數(shù)量,系統(tǒng)在自動(dòng)在列表中檢索狀態(tài)為“3”的函數(shù),按順序顯示提供給用戶記憶,同時(shí)在字典中的函數(shù)狀態(tài)修改為“4”,表示該函數(shù)序列已被記憶。
④背函數(shù)。系統(tǒng)顯示的功能,待用戶輸入對(duì)應(yīng)的函數(shù),并且系統(tǒng)自動(dòng)做出判斷,得出“正確”或“錯(cuò)誤”的提示,按照用戶輸入的數(shù)量,系統(tǒng)提供N個(gè)函數(shù),供背誦,并且狀態(tài)記為2,背誦結(jié)束,系統(tǒng)顯示正確率。
⑤糾錯(cuò)。利用列表,將狀態(tài)為“2”的函數(shù)按順序依次顯示出來(lái),用戶輸入對(duì)應(yīng)的功能,如果和列表中第二元素內(nèi)容一致,而顯示“正確”,否則顯示“錯(cuò)誤”,可連續(xù)糾錯(cuò),退出時(shí)顯示本次糾錯(cuò)率。
⑥退出。退出學(xué)習(xí)系統(tǒng),返回Python系統(tǒng)。
3 系統(tǒng)功能設(shè)計(jì)及實(shí)施
1) 系統(tǒng)功能設(shè)計(jì)
該系統(tǒng)共有五個(gè)子程序,分別為函數(shù)F功能、功能F函數(shù)、記函數(shù)、背誦、糾錯(cuò)及退出系統(tǒng),根據(jù)用戶輸入信息不同,選擇功能不能。首先將字典數(shù)據(jù)轉(zhuǎn)換為二維列表數(shù)據(jù),其中列表元素是由函數(shù)、功能、狀態(tài)參數(shù)組成的一維列表,輸入ch的值,開始調(diào)用子函數(shù),具體邏輯設(shè)計(jì):
①當(dāng)ch=“1”時(shí),系統(tǒng)調(diào)用“yfz”函數(shù),提示用戶輸入函數(shù),系統(tǒng)依據(jù)輸入函數(shù)在列表中去查找對(duì)應(yīng)的選項(xiàng),當(dāng)列表中的第一項(xiàng)內(nèi)容與輸入函數(shù)一致時(shí),系統(tǒng)顯示出函數(shù)及對(duì)應(yīng)的功能,若列表中沒有一致的函數(shù)時(shí),系統(tǒng)顯示“查無(wú)此函數(shù)”,返回主函數(shù)重新錄入ch;
②當(dāng)ch=“2”時(shí),系統(tǒng)調(diào)用“zfy”函數(shù),提示輸入功能關(guān)鍵詞,依據(jù)關(guān)鍵詞,在列表中查找,當(dāng)列表中的第二項(xiàng)內(nèi)容與輸入關(guān)鍵詞一致時(shí),系統(tǒng)顯示與關(guān)鍵詞相關(guān)的所有函數(shù)及對(duì)應(yīng)的功能,并對(duì)查找的結(jié)果顯示統(tǒng)計(jì)的數(shù)據(jù),用戶依據(jù)實(shí)際需求進(jìn)行選擇操作,若列表中沒有符合的關(guān)鍵詞時(shí),系統(tǒng)顯示“查無(wú)此功能”,返回主函數(shù)重新錄入ch;
③當(dāng)ch=“3”時(shí),系統(tǒng)調(diào)用“jhs”子函數(shù),確定記單詞n個(gè),系統(tǒng)在列表中查找狀態(tài)為“3”的數(shù)據(jù),按照用戶輸入的n,顯示n個(gè)元素中第一項(xiàng)、第二項(xiàng)內(nèi)容,并且系統(tǒng)修改狀態(tài)“3”為“4”,用戶對(duì)函數(shù)及功能進(jìn)行背誦,背誦完成返回主函數(shù),提示用戶重新錄入ch;
④當(dāng)ch=“4”時(shí),系統(tǒng)調(diào)用“bhs”子函數(shù),確定背誦數(shù)n個(gè)在列表中查找狀態(tài)“4”的數(shù)據(jù),按順序顯示功能,要求用戶輸入函數(shù)與其對(duì)應(yīng),若用戶輸入的函數(shù)與功能在列表中的功能對(duì)應(yīng)的函數(shù)一致時(shí),系統(tǒng)顯示“正確”,并且將狀態(tài)參數(shù)改為“1”,否則系統(tǒng)顯示“錯(cuò)誤”,狀態(tài)參數(shù)改為“2”,并且顯示出正確的答案。背誦結(jié)束后,系統(tǒng)統(tǒng)計(jì)出當(dāng)前背誦的正確率,返回主函數(shù)重新錄入ch;
⑤當(dāng)ch=“5”時(shí),系統(tǒng)調(diào)用“jchs”子函數(shù),系統(tǒng)對(duì)狀態(tài)參數(shù)“2”內(nèi)容進(jìn)行糾錯(cuò),糾錯(cuò)的次數(shù)為用戶輸入n次。系統(tǒng)顯示功能,用戶輸入函數(shù)與其對(duì)應(yīng),若與列表中功能對(duì)應(yīng)的函數(shù)一致,則顯示正確率,將狀態(tài)參數(shù)改為“1”,若與列表中功能對(duì)應(yīng)的函數(shù)不一致,則顯示正確率,將狀態(tài)參數(shù)不變,每交互一次系統(tǒng)重新計(jì)算正確率,返回主函數(shù)重新錄入ch;
⑥當(dāng)ch=“6”時(shí),系統(tǒng)調(diào)用“tc”子函數(shù),退出系統(tǒng)返回。
學(xué)習(xí)系統(tǒng)流程如圖3所示。
2) 系統(tǒng)功能實(shí)施
實(shí)施部分代碼如下所示。其中知識(shí)來(lái)源于[6]
#Excel函數(shù)學(xué)習(xí)系統(tǒng)
#銅職院基礎(chǔ)部信息教研室
def jchs():
i=0
j=0
zq=0
m=1
k=2
#判斷輸入函數(shù)與系統(tǒng)提供功能是否對(duì)應(yīng)#
while (i<len(list1) and j<n):
if list1[i][k]=="2":
sr=input(list1[i][m])
if sr==list1[i][0]:
list1[i][k]="1"
print("正確")
zq=zq+1
else:
list1[i][k]="2"
print("錯(cuò)誤")
print("正確答案",list1[i][0])
#主函數(shù)#
list1=[]
f1=open("順序函數(shù)本.txt","r")
for line in f1:
lb=line.strip('\n').split( )
list1.append(lb)
f1.close()
n=eval(input("輸入函數(shù)個(gè)數(shù)"))
ch=""
while(ch!="6"):
print("歡迎使用excel函數(shù)學(xué)習(xí)系統(tǒng)",'\n')
ch=input("請(qǐng)選擇? 1.函數(shù)→功能 2.功能→函數(shù) 3.記函數(shù) 4.背函數(shù) 5.糾錯(cuò) 6.退出\n")
if ch=="1":
yfz()
elif ch=="2":
zfy()
elif ch=="3":
jhs()
elif ch=="4":
bhs()
elif ch=="5":
jchs()
elif ch=="6":
tc()
3) 用戶學(xué)習(xí)及統(tǒng)計(jì)的實(shí)施過程
系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)最終要落實(shí)在實(shí)施效果上,實(shí)施效果是檢驗(yàn)設(shè)計(jì)合理性和實(shí)用性最主要的手段。由于平臺(tái)的使用者是Excel函數(shù)學(xué)習(xí)和使用的用戶,故而設(shè)計(jì)體現(xiàn)了以用戶為主體、系統(tǒng)為導(dǎo)向,遵循“在工作中學(xué)習(xí),在學(xué)習(xí)中工作”的理念,本著界面人性化、菜單條理化、思路清晰化思想完成了設(shè)計(jì),現(xiàn)舉例說明用戶實(shí)施過程。
①函數(shù)F功能
示例:當(dāng)用戶輸入ch值為1時(shí),調(diào)用“yfz”子函數(shù),提示用戶“請(qǐng)輸入一個(gè)函數(shù)”,此時(shí)用戶想要了解vlookup()函數(shù)詳細(xì)功能解釋,第一次輸入函數(shù)名lookup()后,系統(tǒng)提示“沒有此函數(shù)”,表示函數(shù)庫(kù)中不存在此函數(shù),如圖4所示。當(dāng)確認(rèn)輸入函數(shù)有誤再重新輸入函數(shù)名vlookup()后,系統(tǒng)顯示出該函數(shù)及對(duì)應(yīng)的功能,如圖5所示。
②糾錯(cuò)
示例:當(dāng)用戶輸入ch值為5時(shí),調(diào)用“jchs”子函數(shù),首先系統(tǒng)顯示當(dāng)前狀態(tài)參數(shù)為“2”的函數(shù)功能讓用戶進(jìn)行依次糾錯(cuò),糾錯(cuò)次數(shù)由用戶輸入確定。如果輸入函數(shù)正確,則將顯示“正確”,計(jì)算出目前累計(jì)正確率百分之值,且將狀態(tài)參數(shù)修改為“1”,如果輸入函數(shù)錯(cuò)誤,顯示“錯(cuò)誤”,狀態(tài)參數(shù)值不變,計(jì)算出正確率百分之值,糾錯(cuò)次數(shù)減1,直至糾錯(cuò)次數(shù)為0,則返回主界面。操作過程如圖6所示。
系統(tǒng)執(zhí)行過后,字典中參數(shù)狀態(tài)發(fā)生了變化。如圖7所示。
4 結(jié)束語(yǔ)
總的來(lái)說,基于 Python語(yǔ)言的信息查詢系統(tǒng)會(huì)具有一個(gè)非常好的前景,隨著系統(tǒng)發(fā)展平臺(tái)的延伸,系統(tǒng)的使用會(huì)更加廣泛。本文系統(tǒng)的設(shè)計(jì),為信息化教學(xué)提供了便利,主要表現(xiàn)在:1)填補(bǔ)了在信息化平臺(tái)上Excel函數(shù)學(xué)習(xí)過程中的空白,是一個(gè)很有效的學(xué)習(xí)平臺(tái);2)為教學(xué)提供了便利條件,學(xué)習(xí)與教學(xué)實(shí)現(xiàn)了規(guī)范化管理,通過字典能有效的統(tǒng)計(jì)出學(xué)習(xí)情況;3)為類似的字典、庫(kù)資源學(xué)習(xí)奠定了更好的平臺(tái)基礎(chǔ)。
參考文獻(xiàn):
[1] 殷文俊.Excel函數(shù)講授方法芻議[J].電腦知識(shí)與技術(shù),2020,16(6):77-78,81.
[2] 楊東寬,趙曉俠,楊微微,等.Python在線考試系統(tǒng)的分析與設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2021,17(11):71-73.
[3] 高敏.基于Python的計(jì)算機(jī)等級(jí)考試查詢系統(tǒng)[J].中國(guó)新通信,2021,23(3):113-114.
[4] 葛書榮.基于Python語(yǔ)言編程特點(diǎn)及應(yīng)用之探討[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(10):37-38.
[5] 朱建平.基于C/S和B/S混合架構(gòu)的無(wú)線發(fā)射臺(tái)自動(dòng)化綜合監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2021,45(11):133-136.
[6] 李東方,文欣秀,張向東.Python程序設(shè)計(jì)基礎(chǔ)[M].2版.北京:電子工業(yè)出版社,2020.
【通聯(lián)編輯:謝媛媛】