闞淑華
(青島第七中學(xué) 山東省青島市 266001)
當(dāng)前的初中生正是千禧一代,是我們所說的網(wǎng)絡(luò)原住民,而教師大多都是網(wǎng)絡(luò)移民,由于兩者生活環(huán)境、生活方式、教育方式的不同,導(dǎo)致兩者的思維方式也存在著一定程度的代溝和差異。在這個(gè)科技高速發(fā)展、思想多元包容的時(shí)代,青少年理應(yīng)學(xué)習(xí)計(jì)算機(jī)信息技術(shù),理應(yīng)了解掌握計(jì)算機(jī)編程語言,只有這樣,才能更好地與時(shí)代共發(fā)展,更好地面對未來的世界。
本文將對Python 編程語言作簡單介紹,探究初中生所應(yīng)該了解的基于Python 編程語言的技術(shù)應(yīng)用。
Python 編程語言最初是在二十世紀(jì)80-90年代由荷蘭人Guido van Rossum 設(shè)計(jì)出來的這是帶四代計(jì)算機(jī)編程語言。Guido van Rossum 在2005年加入谷歌之后仍然領(lǐng)導(dǎo)著Python 語言版本的更新與開發(fā)工作。
Python 在國內(nèi)的發(fā)展起步較晚,最近幾年才開始流行起來,但它在國外的應(yīng)用可謂是相當(dāng)廣泛,很多搜索引擎和網(wǎng)站都是基于Python 語言完成的。Python 作為一種腳本語言,可以以極高的效率完成代碼的開發(fā),具備多種多樣、強(qiáng)大實(shí)用的第三庫工具,且語法易于理解,能夠簡單快速地進(jìn)行編程,故而應(yīng)用也相當(dāng)廣泛,不僅可以處理文字,還可以用于開發(fā)和設(shè)計(jì)Web 游戲。
Python 語言功能強(qiáng)大,具有語言簡單、跨平臺性、解釋性、交互性、面向?qū)ο?、?qiáng)大的生態(tài)系統(tǒng)等特性。
Python 語言的簡單體現(xiàn)在它的語法易于理解,且表達(dá)優(yōu)美。例如,與C 語言或Java 等編程語言相比,使用Python 語言在屏幕上輸出“hello world”這個(gè)經(jīng)典的句子并不需要建立main 函數(shù),可以直接敲入輸出語句,實(shí)現(xiàn)字符串的輸出顯示:
>>>print“hello world!”
屏幕輸出顯示結(jié)果為:hello world!
Python 語言的簡單還體現(xiàn)在它的代碼縮進(jìn)語法。代碼縮進(jìn)使得利用Python 語言所寫的代碼結(jié)構(gòu)更加整齊,省略了其他語言中的花括號和分割代碼,代碼之間的層次是依靠冒號和代碼縮進(jìn)區(qū)分的。例如if 語句的寫法是:
If True:
Print“Yes,it is true”
Python 語言的編寫很高效,代碼行數(shù)與其他編程語言相比來說較少,可以為程序員節(jié)省大量的工作量,提高編程效率,節(jié)省時(shí)間成本和人力成本。這種語言很適合作為編程學(xué)習(xí)的入門課程,其容易理解也容易上手,使用門檻較低,語法邏輯也很清晰完整,是一門特別實(shí)用的編程語言。
Python 語言是支持面向?qū)ο蟮?,這種設(shè)計(jì)更加契合人類的思維方式。同時(shí),Python 語言的開源使得程序可以直接在不同的平臺上運(yùn)行,而不需要考慮不同平臺之間的差異性對程序進(jìn)行修改。
Python 強(qiáng)大的生態(tài)系統(tǒng)為用戶帶來了極大的便利,能夠滿足用戶的各種需求。專業(yè)開發(fā)者可以直接使用豐富多樣的第三庫工具達(dá)到開發(fā)目標(biāo),縮短了開發(fā)時(shí)間。
Python 集成開發(fā)環(huán)境可以選擇較低的安裝版本,比如Python-3.5.3,但必須是Python-3.x 系列。安裝低版本時(shí)要單獨(dú)設(shè)置環(huán)境變量,具體方法是使用cmd 命令或者在計(jì)算機(jī)的高級系統(tǒng)設(shè)置中進(jìn)行設(shè)置。安裝好集成開發(fā)環(huán)境后,還可以安裝PyCharm 或者全體輔助工具,這些輔助工具可以實(shí)現(xiàn)對代碼進(jìn)行調(diào)試和糾錯(cuò)等功能,從而提高編程的效率。
Python 具有很多的第三庫工具,這些工具可以實(shí)現(xiàn)多種多樣的功能,比如圖像和視頻處理、數(shù)據(jù)挖掘等。應(yīng)用random 庫中的隨機(jī)數(shù)函數(shù)求解π,同時(shí)掌握蒙特卡洛方法。word cloud 庫可以制作日常生活中常見的關(guān)鍵詞云層,用來顯示詞語在文本中出現(xiàn)的頻率,顯示文本的主旨等。Matplotlib 二維繪制庫可以生成高品質(zhì)的圖片,SciPy 可以實(shí)現(xiàn)數(shù)據(jù)的運(yùn)算功能,第三庫還可以編寫自動(dòng)批改選擇題的程序。又例如應(yīng)用Turtle 庫繪制圖形,Turtle 庫又被稱為海龜繪圖庫,是一種基礎(chǔ)的Python 圖形繪制函數(shù)庫,其原理就是通過應(yīng)用程序控制海龜?shù)呐佬?,將其爬行軌跡生成圖形。通過應(yīng)用Turtle 庫除了可以學(xué)習(xí)基礎(chǔ)的圖形繪制以外,初學(xué)者還能夠掌握Python 編程的應(yīng)用能力和程序設(shè)計(jì)結(jié)構(gòu)能力,可謂是一舉多得。每個(gè)工具都具備不同的功能,第三庫工具的學(xué)習(xí)和使用可以激發(fā)編程者的創(chuàng)意,凸顯個(gè)人的創(chuàng)新和特點(diǎn)。
第三庫的安裝一般會(huì)使用pip 工具和cmd 命令進(jìn)行安裝,也就是以管理者的身份通過pip install 進(jìn)行安裝,當(dāng)然也可以自定義安裝和文件安裝。
軟件功能的實(shí)現(xiàn)離不開硬件的支持,代碼的輸送也是以硬件為基礎(chǔ)的。學(xué)習(xí)計(jì)算機(jī)的硬件,內(nèi)容包括了CPU 的組成、輸入輸出系統(tǒng)、計(jì)算機(jī)工作原理等。先了解了計(jì)算機(jī)的硬件結(jié)構(gòu),才能更好地理解計(jì)算機(jī)語言的語法邏輯。
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)軟件的重要組成部分,能夠與外界進(jìn)行通信。Python 的解釋器程序可以將編寫好的程序進(jìn)行翻譯,轉(zhuǎn)換為二進(jìn)制的字節(jié)碼,也就是將人類的語法邏輯轉(zhuǎn)變?yōu)闄C(jī)器的語法邏輯,方便機(jī)器進(jìn)行處理。Python 的虛擬機(jī)程序組件又可以將轉(zhuǎn)換后的字節(jié)碼存放到操作系統(tǒng)中以備后續(xù)調(diào)用,軟件通過代碼的指示與操作系統(tǒng)進(jìn)行溝通,以執(zhí)行某種功能。
Python 返回結(jié)果的表現(xiàn)方式第一種是通過函數(shù)實(shí)現(xiàn)。例如求字符串中元音字母的個(gè)數(shù)值可以這樣編寫:
VowelCount(“What is it?”)
Returns 3(one a and two t’s)
第二種表現(xiàn)方式是通過圖形化表達(dá)實(shí)現(xiàn)。例如使用餅狀圖表示元音字母在全圖中的比例,這種表達(dá)方式更加直觀易讀。
Python 應(yīng)用于數(shù)據(jù)分析主要是如何利用Python 語言讀取各種文件,如何制作各種圖表,如何實(shí)現(xiàn)數(shù)據(jù)庫的鏈接,如何進(jìn)行統(tǒng)計(jì)分析,如何建模,以及各種Python 包的使用方法。
Python 語言的標(biāo)準(zhǔn)庫可以應(yīng)用于大數(shù)據(jù)的處理,這其中的處理邏輯是:將數(shù)據(jù)轉(zhuǎn)換為與Python 相適應(yīng)的數(shù)據(jù)結(jié)構(gòu),然后采用適合的Python 工具分析數(shù)據(jù),最后得出數(shù)據(jù)的特征并用合適的結(jié)構(gòu)形式表現(xiàn)出來。例如,采用Python 語言開發(fā)數(shù)據(jù)采集軟件,這種軟件免安裝,可以設(shè)置采樣頻率,后臺還能夠自動(dòng)保存數(shù)據(jù),簡化了操作步驟,使得數(shù)據(jù)的采集分析更加靈活。
Python 還可以用于解決微分方程、矩陣解析、概率分布等數(shù)學(xué)問題。
Python 語言在數(shù)據(jù)科學(xué)領(lǐng)域的應(yīng)用是它的核心競爭優(yōu)勢,其在這一領(lǐng)域的應(yīng)用前景是很樂觀的。
Python 在數(shù)據(jù)分析領(lǐng)域的典型應(yīng)用案例是基于Python 語言的校園一卡通消費(fèi)信息處理。使用Python 對校園一卡通的消費(fèi)信息進(jìn)行分析和處理,并通過可視化技術(shù)生成圖像,從而直觀地了解學(xué)生的消費(fèi)水平、消費(fèi)習(xí)慣等信息,為學(xué)校的管理決策提供參考。以往大家常用Excel 圖表來反映數(shù)值意義,Excel 圖表的制作簡單,但這種方法并不適用于海量數(shù)據(jù)的處理,于是,Python 語言的優(yōu)勢就凸顯了出來。利用Python 語言分析某校校園卡每筆消費(fèi)的額度,可以得到圖1。
通過觀察圖1,可以發(fā)現(xiàn),每筆消費(fèi)額度在2 元和6 元處達(dá)到了峰值,可以得出以下結(jié)論:商店2 元和6 元的商品銷量最好,這樣商店就掌握了學(xué)生的消費(fèi)行為,從而制定合理的進(jìn)貨清單。
圖1:某校校園卡每筆消費(fèi)額度情況
Python 可以實(shí)現(xiàn)Java 的所有功能,Web 應(yīng)用和網(wǎng)頁游戲的設(shè)計(jì)更傾向于使用Python。利用Python 建立的豆瓣網(wǎng)、YouTube是Python 之Web 應(yīng)用的經(jīng)典例子。使用Python 進(jìn)行Web 開發(fā)大多是基于WSGI 這一傳統(tǒng)的線程模型。WSGI 傳統(tǒng)模式是存在于Python web server、application、middleware 之間的官方規(guī)范標(biāo)準(zhǔn)。但WSGI 這種模式存在著兩大局限。第一是其不支持異步,第二是不支持Python3.x。
目前越來越多的網(wǎng)頁游戲的設(shè)計(jì)都使用Python 編程語言,改變了以往使用CC++語言設(shè)計(jì)服務(wù)端的傳統(tǒng)。在以往的游戲設(shè)計(jì)中,采用C++編寫host,同時(shí)調(diào)用多個(gè)LUA 腳本語言完成一個(gè)項(xiàng)目的業(yè)務(wù)邏輯,而現(xiàn)在,Python 自身就可以做到這些。
云技術(shù)的很多底層的虛擬化都使用Python 語言實(shí)現(xiàn)。把資源以服務(wù)的方式提供給客戶是云計(jì)算的核心思想,IaaS、SaaS、PaaS這些云計(jì)算平臺都可以實(shí)現(xiàn)這一核心思想。而這些平臺的開放協(xié)議棧OpenStack 都是采用Python 開發(fā)的。例如易度的PaaS 就是利用現(xiàn)有的開源技術(shù),基于Python 語言建立的。又例如百度云也采用了Python 語言,谷歌搜索引擎的云計(jì)算服務(wù)更是僅支持Python 這一種語言。
大數(shù)據(jù)時(shí)代網(wǎng)絡(luò)資源多種多樣,海量信息應(yīng)有盡有,基于Python 的網(wǎng)絡(luò)爬蟲技術(shù)可以在互聯(lián)網(wǎng)的海量資源中挖掘出有用信息,緩解大數(shù)據(jù)時(shí)代的信息焦慮。這種技術(shù)以用戶需求為搜索目標(biāo),分析網(wǎng)頁代碼的class 屬性,利用第三庫工具requests 和beautiful soup4 中的相關(guān)函數(shù)獲取并下載有用信息。例如網(wǎng)絡(luò)圖片爬蟲技術(shù),這種技術(shù)主要是搜集網(wǎng)絡(luò)上的圖片信息,對制定指定網(wǎng)站上的所有圖片中的信息進(jìn)行自動(dòng)提取,然后下載到本地進(jìn)行保存。所謂爬蟲,是一段程序,可以自動(dòng)抓取網(wǎng)絡(luò)信息,通過程序模擬瀏覽器,然后向站點(diǎn)發(fā)送請求,對站點(diǎn)反饋的信息進(jìn)行分析,提取出所要的圖片信息,下載到本地儲存起來,用于后續(xù)的數(shù)據(jù)分析。網(wǎng)絡(luò)圖片爬蟲技術(shù)的基本工作流程如圖2所示。
圖2:網(wǎng)絡(luò)圖片爬蟲技術(shù)的基本工作流程
ArcPy 是軟件開發(fā)引擎ArcGIS Engine 自帶的Python 站點(diǎn)包,它可以降低ArcGIS 二次開發(fā)的難度和門檻,能夠提供接口、函數(shù)和類,主要用于地理數(shù)據(jù)的查詢和處理。ArcPy 所包括的制圖模塊能夠提供用于自動(dòng)化制圖的函數(shù)和類,可以用來批量制作專題圖。以湖泊環(huán)境因子空間分布專題圖的制作為例,批量制作湖泊環(huán)境因子空間分布專題圖技術(shù)路線如圖3所示。
圖3:批量制作湖泊環(huán)境因子空間分布專題圖技術(shù)路線
基于Python 和ArcPy 的專題圖批量制作方法實(shí)現(xiàn)了專題圖制作的自動(dòng)化,提高了制作效率,將來可能廣泛應(yīng)用于數(shù)據(jù)框架分析工作當(dāng)中。
Python 的應(yīng)用領(lǐng)域非常廣泛,越來越受到國內(nèi)外軟件技術(shù)人員的歡迎和青睞,國內(nèi)的許多高校也開設(shè)了Python 編程語言課程。但Python 在國內(nèi)的推廣和普及仍有較長的道路要走,如何將這種優(yōu)秀的編程語言更好地應(yīng)用于人工智能、機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)、金融、運(yùn)維等領(lǐng)域是學(xué)界應(yīng)該關(guān)注的重要課題。