李冠璟,張楚



摘要:自從2020年開啟人工智能時代,編程啟蒙教育,在高校的會計學專業的受重視程度越來越高。為了非編程類會計學專業的學生,能夠適應財務大數據時代。高校設立了財務大數據實驗室,以Python編程語言為引領。文章介紹了基于Python中xlrd、xlwt模塊為基礎,通過先學習xlrd模塊庫與xlwt模塊庫,從而調動學生興趣的同時,也能夠為后續的財務大數據應用課程中的爬蟲部分的學習奠定根基,幫助課程順利開展。
關鍵詞:Python;編程教育;xlrd;xlwt;會計學
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)35-0135-04
1 引言
自計算機誕生以來,財務會計一直都緊跟時代的腳步,與時俱進。從傳統的由人實行手工做賬和手動計算,慢慢演變成利用各類財務會計軟件,簡潔快速地對財務信息進行整理、分篩、儲存、核對、審核,達到無紙化、標準化、格式化、統一化的信息管理。
隨著大數據時代的到來,財務會計的數據需要處理的數據與日俱增,數據的發掘與批量篩選處理。對于財務會計來說,面對海量的數據,要求從事會計專業的專職人員如何收集規模數據、整理有效數據、拆分需求數據、分析篩選數據、利用獲得數據,并將這些數據進行整合、歸納、配置,是會計從業人員面臨的新的挑戰。
以學生未來發展為中心,是世界高等教育共同的理念。為了學生能夠進入社會后,更好地適應新的時代,掌握新的社會發展方向。高校的會計學專業相繼引入《財務大數據》課程,希望能夠通過新模式的學習,讓學生接觸到計算思維。新版的計算課程標準,是將計算思維解讀為使用計算機科學領域的思維方式,用來解決現有存在的問題,達到更高效,更全面[1]。
高校希望通過會計專業的Python編程教育方式,來實施面向會計學專業學生的計算思維的教學,以此來激發學生學習熱情,適時互動,活躍課堂氣氛,師生之間、生生之間開展有效的討論與交流。
2 課程的教學困境
2.1 非編程專業授課難點
在以往歷年經驗來看,各高校在教學實踐中,會計學專業的學生接受純代碼的編程課程能力有限,純代碼的授課編程在傳統的會計課堂中非常難以開展,同時授課課時的限制和非編程專業的教授難度常常會讓教師花費過多的時間復習舊知。這樣不但讓基礎差異較大的學生無法充分參與到財務大數據分析的核心知識中,反而降低會計學專業學生對編程學習的興趣與進取心。課程授課教師,在編排《財務大數據》課程時,也對應面臨巨大課時壓力,無法既要兼顧學生,又要符合學校課時時限要求。
2.2? Python知識授課問題
傳統的Python編程教學,是先從Python的基礎語法開始教授。這些基礎語法教學,在面對非編程類的會計學學生來說,是知識枯燥乏味,是編程練習脫離實際。授課的教師,為了全面介紹Python,往往一股腦地將Python基礎中的變量、函數、列表、字典、類等等,一下子講解給學生聽,希望其能夠快速入門Python這門語言,完成會計專業與Python編程語言的融會貫通,最終實現學校預想目的,即財務會計大數據化。
可是在現實情況中,會計學專業的學生,在接受填鴨子式的Python基礎課程學習后,仍然一知半解,甚至對于Python的認識,還停留在數字表達式的使用階段,無法到達函數的合理運用層面。
3 課程教學解決方案
3.1 合理的Python模塊庫選擇
眾所周知,Python的標準模塊庫非常龐大,所提供的組件涉及范圍也十分廣闊[2]。選擇實用性強,語法簡易的Python模塊庫,用來教學示范,能夠讓教學質量提升的同時,學生也能較快地理解如何正常使用Python編程語言。
數據處理是會計學專業工作中,必定接觸到的內容。同時,數據處理也是Python編程語言的一大應用場景。Excel工作簿作為目前世界最流行的數據處理軟件,在會計學專業中,具有舉足輕重的地位。
那么在Python模塊庫中,尋找適合的模塊庫來操控Excel工作簿,實現智能化辦公[3]。這個模塊庫還要兼顧著啟蒙非編程類會計學專業學生的Python基礎入門和掌握的重任。
在遍歷眾多Python標準模塊庫中,xlrd模塊和xlwt模塊,這兩個模塊就具備Python啟蒙教育的效果[4-5]。xlrd模塊,能夠對xls、xlsx、xlsm文件進行讀操作,讀操作效率較高,受到廣大Python使用者的推薦。xlwt模塊,對xls文件進行寫操作,其寫操作效率較高,一般與xlrd模塊同時使用。
xlrd模塊和xlwt模塊,在課程環節里面,通過逐層遞進地講授模塊功能方式,將Python基礎知識容納進課程環節中。學生在接受Python基礎知識的同時,更加能夠如何使用,更加透徹地理解Python基礎知識,為后面的Python爬蟲奠定牢固的基礎[6-8]。
3.2? xlrd模塊與xlwt模塊的《零食消費統計表》課程設計
3.2.1 課程內容
《零食消費統計表》課程設計里面,包含的Python基礎內容:(1)Python的模塊導入;(2)Python的注釋;(3)Python的變量類型;(4)Python的字符串;(5)Python的算術運算符;(6)Python的條件語句;(7)Python的for循環語句;(8)Python的循環嵌套。
3.2.2 課程目的
通過xlrd模塊與xlwt模塊的《零食消費統計表》課程,讓會計專業的學生,在一定程度上了解Python語言,懂得Python語言是如何使用。促進會計專業的學生,掌握Python中xlrd模塊與xlwt模塊,是如何與辦公軟件Excel工作簿協同使用,帶給會計專業學生更強大的生活技能和更好地適應社會節奏。同時在《零食消費統計表》課程結束后,會計學專業的學生已經學會通過xlrd模塊與xlwt模塊,調用Excel工作簿,來實現初步課程想要的達到的效果,這樣可以更加直觀地使學生有了學習Python的自信心與動力。
這門課程也可以讓Python基礎知識淺顯易懂地展現在學生面前,為后面更加難的財務大數據爬蟲課程,奠定堅實的基礎。
3.2.3 課程流程
① 《零食消費統計表》的制定
按照需求,自己首先制定一份Excel工作簿,內容如表1所示。用來給接下的課程做準備。Excel工作簿內Sheet表格的行索引有學生姓名和1-12月份。
《零食消費統計表》的Sheet表內詳細記錄了每位學生,1-12月分別花費在零食上的金額。
在學生制作《零食消費統計表》Excel工作簿的過程中,會發現Excel工作簿有兩種格式,分別是“xls”格式和“xlsx”格式。
“xls”格式和“xlsx”格式,都是Excel工作簿的標準格式。這兩者的區別在于,“xls”格式是內部核心構造是復核文檔類型,在Excel2003及較早版本都能夠生成這樣的格式。“xlsx”格式是基于XML類型所構造,占比內存空間小,在Excel2007及之后所生成的文件格式。
授課老師可以在學生制作《零食消費統計表》Excel工作簿時候,將“xls”格式和“xlsx”格式,兩者的區別,分析給學生,讓對Excel工作簿未熟悉的學生,能夠進一步了解Excel工作簿。
授課老師著重叮囑學生,在使用Python中xlrd模塊與xlwt模塊,制作自己Excel工作簿的時候,要使用“xls”格式。因為Python中xlrd模塊與xlwt模塊,目前只是兼容“xls”格式,而不兼容“xlsx”格式。一旦學生使用“xlsx”格式建立Excel工作簿,程序會報錯,導致無法運行,影響課程進度。
達到教學效果:讓學生了解到Excel工作簿有兩種格式,分別是“xls”格式和“xlsx”格式,講述“xls”格式和“xlsx”格式的兩者之間區別。同時,令學生知悉,Python中xlrd模塊與xlwt模塊對Excel工作簿格式的要求。
② 模塊庫的導入
模塊實際上是以.py為結尾的文件。Python模塊可以將代碼量較大的程序,人為地分割成多個有組織的、彼此獨立但又能夠相互交互的代碼片段。這些自我包含,有組織,有層次的代碼段就是模塊。
模塊內部通過類方式封裝了很多實用的功能,xlrd模塊與xlwt模塊,這兩個模塊都是在外部調用的模塊,需要在程序內進行導入。導入模塊簡單劃分有兩種,分別是(1)import 模塊名;(2)from 模塊名 import 功能名。
這里需要導入的模塊是xlrd模塊與xlwt模塊,如圖1所示。
達到教學效果:
讓學生了解到Python的注釋的對編程的幫助效果,通過注寫第一行Python注釋,開啟學生學習xlrd模塊與xlwt模塊的篇章。令學生知悉Python的模塊是能夠通過‘import執行語句進行導入,在導入模塊時只能使用模塊名,而不能使用帶‘.py后綴的模塊文件名稱。同時學生執行‘import語句,導入模塊后,出現模塊并沒有點亮的情況。授課教師借此機會,向學生說明,模塊雖然導入,但是并沒有開始編程引用。只要接下來,按照課程指引,編寫課程代碼,就能夠引用模塊,點亮。
③ 讀取和新建Excel工作簿
使用xlrd模塊讀取Excel工作簿,需要用到函數open_workbook方法和函數sheet_by_name方法。這涉及需要給打開的Excel工作簿定義變量名。
在Python中,變量在編程使用的時候,都必須給變量通過等號賦值。變量賦值以后,該變量才能被創建,通過等號(=)用來給變量賦值。等號(=)左邊是一個變量名,等號(=)右邊是儲存在變量中的值。
變量命名可以是英文,也可以是中文。以下兩種命名方式都是能夠定義變量,如圖2和圖3所示。
使用xlwt模塊新建Excel工作簿和工作表,需要用到函數Workbook方法和函數add_sheet方法。通過xlwt模塊,新建Excel工作簿和工作表,接著需要給新建Sheet工作表命名名稱,Sheet工作表命名要使用字符串命名,如圖4所示。
Python的字符串是 Python 中最常用的數據類型,需要使用單引號( ' )或雙引號( " )來創建字符串。
達到教學效果:讓學生了解到Python的變量類型分別有英文變量名和中文變量名,使用兩種變量名的效果是一致的。令學生知悉Python的字符串,需要使用單引號( ' )或雙引號( " )來創建。同時使學生明白,賦值的含義。正確地給Python變量進行賦值,為后續的編程完善具有重要意義。
④ 求算《零食消費統計表》中每位學生零食花費情況
這里用到Python的運算符、Python的for循環語句以及Python循環嵌套。Python的算術運算符參數,如表2所示:
Python的for循環是指將元素從儲存的地方,一個個遍歷出來,可以遍歷任何序列的項目,可以是列表、字典、字符串等。Python的for循環可以單獨出現,也可以作為Python的循環嵌套的一種表達方式出現。在該課程里面,是作為Python的循環嵌套的一種表達方式出現。
通過使用Python的for循環嵌套,逐個遍歷每位學生,再遍歷每位學生的1-12月份,如圖5所示。接著將獲取到的每位學生的每月零食消費額度,通過Python算術運算符的加法方式,累加1-12月份的金額,從而求算出每位學生消費總額度。
學生通過學習Python的for循環嵌套,掌握執行Python中for循環代碼的分支循環,讓特定代碼重復執行。在以后的日常生活中,可以使用類似的方法,解決會計內重復計算工作,減輕會計工作量,使會計更加高效。
達到教學效果:讓學生了解到Python的算術運算符、Python的for循環語句以及Python循環嵌套。尤其是Python的for循環語句,在Python基礎教學中,具備著舉足輕重的地位,能夠讓學生清晰Python中for循環語句的使用方法。
⑤ 將求和寫入到Sheet工作表
通過Python的加法運算,求和得出每位同學1-12月的零食消費總額度(subtotal)。這些零食消費總額度,是暫時存儲在電腦內存中,并沒有寫入到Sheet工作表中,如圖6所示。
xlwt是Python中往Excel工作簿中寫入數據的模塊,xlwt模塊的函數write方法,能夠向Excel工作簿內的Sheet工作表中添加數據并保存,利用xlwt模塊的函數write方法,將獲取到的每位同學姓名、總月份、零食消費總額度,寫入到對應的Sheet工作表格中。
接著,我們需要給已經寫入到Sheet工作表的同學姓名、總月份、零食消費總額度,添加列索引,使其看起來更加符合日常人們使用規范,如圖7。
通過上述方式,最后獲得的Sheet工作表的內容,如表3所示:
達到教學效果:讓學生了解到Python的xlwt模塊內函數write使用方式,知悉xlwt模塊的函數write是如何對應Sheet工作表的行與列。Python的xlwt模塊內函數write的知識點講解,是不可忽視的課程節點。
⑥ 保存制作好的工作簿
最后,我們將制作好的Sheet工作表,保存到我們指定的目錄,如圖8所示。一般情況下,是保存在當前Python文件夾下,將文件保存為“統計表.xls”。
達到教學效果:讓學生了解Python的當前文件夾下的路徑,是指學生自己指定新建的‘.py的文件夾內。Python編程語言,很多時候,都直接使用‘當前Python文件夾,作為第一保存路徑。這樣既能夠很好地運行編寫好的Python程序,又可以減少學生對復雜的路徑指引困擾。使課程做到簡單化、清晰化、效益化的作用。
通過學生直觀地感受編程帶來的樂趣,讓學生活用活現地運用Python的xlrd模塊與xlwt模塊,制作出自己第一份Python編程的Excel統計表格,明白了原來編程也可以如此輕松簡單。
4 結語
本文針對學校內財務大數據實驗室的Python編程語言基礎的真實教學情況進行研究,通過調查問卷的方式,從授課班級中隨機收集50名會計學專業學生的Python編程知識學習情況,從客觀、科學的角度挖掘出,存在于非編程類會計學專業的學生學習中的問題,并結合學校會計學專業具體情況,提出實際教學情況,因材施教,向學生給予合理化建議,方案。
本文通過xlrd模塊與xlwt模塊的《零食消費統計表》案例分析,希望能讓學生體會到知識學習有價值目標。Python的知識學習,要與實踐操作相結合才能會發最大效益。會計學專業的學生在課程教學過程中,通過完成任務,形成一定程度的Python編程能力。而能力的形成,即是Python知識課程教學的最終目的,也是檢驗學校教學質量的關鍵因素。
本文只用不到20行的核心代碼,就實現了Python編程與辦公軟件Excel工作簿的結合操作。既能讓學生體會到代碼的美妙之處,也能使學生掌握基本的Python基礎知識。不但識記和理解了Python基礎知識,而且掌握了探索Python編程知識的方法和手段,形成一種科學的態度和探索方向。最終從心理上突破自我,不再被看起來高大上的編程學習所困惑,領悟到自己也可以掌握Python編程,實現智能化,實現自我的提升。
參考文獻:
[1] 岳彥龍,張學軍,梁嶼藩.人工智能教學如何培養高中生的計算思維?——基于人工智能案例驅動的Python編程教學的實證研究[J].基礎教育,2022,19(1):74-84.
[2] Al Sweigart. Python編程快速上手讓煩瑣工作自動化[M]. 王海鵬 譯.北京:人民郵電出版社,2016.
[3] 徐小靜.Python在項目狀態審核管理領域的應用[J].辦公自動化,2022,27(6):59-61.
[4] 楊宏樓,李心茹.Python在高校后勤服務育人數據收集中的應用[J].電腦編程技巧與維護,2021(10):72-74.
[5] 葛書榮.基于Python語言編程特點及應用之探討[J].網絡安全技術與應用,2021(10):37-38.
[6] 肖旻,陳行.基于Python語言編程特點及應用之探討[J].電腦知識與技術,2014,10(34):8177-8178.
[7] 蔣宏潮,鮑偉.高校后勤信息化建設對策研究[J].中國教育信息化,2012(23):27-29.
[8] 郭穎穎,劉麗云.移動互聯網時代高校后勤服務信息化建設探究[J].中國管理信息化,2015,18(10):65.
【通聯編輯:王力】