陳唯耀 李婕 吳紅宇
摘 要:本文首先簡要分析了Python的基本特點(diǎn),對比了CC++、Python、JavaScript與Java這四種語言的特點(diǎn)及應(yīng)用領(lǐng)域,望能為此領(lǐng)域研究有所借鑒與幫助。
關(guān)鍵詞:Python;流行性編程語言;現(xiàn)象
一、python的基本特點(diǎn)
·1.易于學(xué)習(xí):Python有相對較少的關(guān)鍵字,結(jié)構(gòu)簡單,和一個(gè)明確定義的語法,學(xué)習(xí)起來更加簡單。
·2.易于閱讀:Python代碼定義的更清晰。
·3.易于維護(hù):Python的成功在于它的源代碼是相當(dāng)容易維護(hù)的。
·4.一個(gè)廣泛的標(biāo)準(zhǔn)庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。
·5.互動(dòng)模式:互動(dòng)模式的支持,可以從終端輸入執(zhí)行代碼并獲得結(jié)果的語言,互動(dòng)的測試和調(diào)試代碼片斷。
·6.可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。
·7.可擴(kuò)展:如果需要一段運(yùn)行很快的關(guān)鍵代碼,或者是想要編寫一些不愿開放的算法,可以使用C或C++完成那部分程序,然后從Python程序中調(diào)用。
·8.數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。
·9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。
·10.可嵌入:可以將Python嵌入到C/C++程序,讓程序的用戶獲得"腳本化"的能力。
二、不同編程語言各方面的比較
C,C++,Python和Java都是通用編程語言,C語言由于其底層操作和特性和歷史的積累,在嵌入式領(lǐng)域是當(dāng)之無愧的王者;C++是一種支持最廣泛編程范式的復(fù)雜語言,這些年來發(fā)展不太好,目前在服務(wù)器后臺和游戲領(lǐng)域還有其一席之地;python作為一種靈活的輕便的通用型腳本語言,適用范圍比較廣,從應(yīng)用軟件到Web開發(fā)都有它的身影,由于其解釋性語言的特點(diǎn),比較適合輕量級或原型開發(fā);Java由于其跨平臺可移植性,在Web開發(fā)領(lǐng)域大放異彩,特別是在企業(yè)級Web開發(fā),同時(shí)由于Android系統(tǒng)采用Java來開發(fā)應(yīng)用程序,所以也隨著Andriod的發(fā)展而應(yīng)用越發(fā)廣泛。
為了親身體會(huì)python語言的特點(diǎn),我們準(zhǔn)備通過自己的能力來實(shí)踐的編碼一下程序來體會(huì)python語言的魅力。
前期準(zhǔn)備:想要用一門編程語言編寫出一些有實(shí)際作用的程序,首先肯定需要學(xué)習(xí)其基本語法和編寫結(jié)構(gòu)。幸運(yùn)的是,python語言的編程邏輯跟我們平常說話的邏輯比較相近,不想c語言那么需要專業(yè)知識的應(yīng)用,它可以自動(dòng)的處理許多低層次的東西,不需要編程人員的邏輯去顧及底層的東西。簡單的舉個(gè)例子,比如同樣定義一個(gè)整數(shù)類型的變量intx,在c語言中,整形變量是由閾值的,超出這個(gè)閾值程序就會(huì)報(bào)錯(cuò),因?yàn)閏語言的東西是實(shí)實(shí)在在放在內(nèi)存中的,它的整數(shù)型變量是要放在規(guī)定的內(nèi)存中的,內(nèi)存就這么大,超了就會(huì)出現(xiàn)溢出的錯(cuò)誤。而匯編語言就更加繁瑣,在編寫匯編語言時(shí),每寫一句話,沒出現(xiàn)一次簡單的計(jì)算或者出現(xiàn)新的變量,都要同時(shí)給出內(nèi)存的準(zhǔn)確地址。
而python語言就簡單很多,在python中定義整數(shù)型變量,你存入的數(shù)據(jù)是多大,其存入的內(nèi)存?zhèn)€數(shù)大小就會(huì)隨之變化。因此你在設(shè)置變量是就不需要考慮內(nèi)存問題,也就可以跳過很多底層的設(shè)計(jì)邏輯。我們的初期準(zhǔn)備之一就是學(xué)習(xí)這些方面的知識,包括其基本函數(shù),基礎(chǔ)庫的學(xué)習(xí)。其二就是對python編碼器的安裝。通過老師介紹以及網(wǎng)上查詢,最后我們決定使用anaconda這個(gè)編譯器平臺來編碼python語言(安裝平臺的過程.pdf)
(此實(shí)驗(yàn)使用模擬器進(jìn)行)
實(shí)驗(yàn)過程:我們決定一起編寫一個(gè)比較簡單的程序,通過c語言編寫和python語言編寫,來比較其區(qū)別。我們通過最簡單的語法和math庫的運(yùn)用,編寫了兩個(gè)比較簡單的計(jì)算程序,一個(gè)是以python為主要編程語言編寫的,另一個(gè)是以匯編語言為主要編程語言編寫的。
#從顯示屏中輸出A-Z26各字符
匯編:
MVRD R2 ,001A
MVRD R0 ,0041
OUT 80
DEC R2
JRZ 202E
PUSH R0
IN 81
SHR R0
JRNC 2028
POP R0
INC R0
JR 2024
RET
python:
for I in x range(26):
print chr(i+ord(“A”))
實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)結(jié)果我們從時(shí)間復(fù)雜度,程序運(yùn)行程度,程序理解難易程度以及整個(gè)編寫思考的時(shí)間來比較。對于時(shí)間復(fù)雜度,匯編語言為O(n),而python語言為O(n2)。這代表python語言的編寫程序?qū)τ谟?jì)算機(jī)來說,執(zhí)行的更麻煩,需要計(jì)算的次數(shù)更多,更加消耗內(nèi)存,但相反的,需要交給編寫員的東西也就更少。因此,理論上來說,python程序執(zhí)行一次需要的時(shí)間是匯編程序的平方倍。而我們通過對大學(xué)生的調(diào)查,python語言編寫的程序,只要懂一點(diǎn)英語和一些基本邏輯的人,程序的大部分都是可以看懂的,而匯編語言編寫的程序,只有信息學(xué)院和軟件學(xué)院的學(xué)生才能看懂。也就是說明,匯編語言更加專業(yè),而python語言就比較簡單易懂了。來整個(gè)編碼的時(shí)間,匯編語言更加需要邏輯的思考,而且很容易出現(xiàn)bug,非常難編寫,一個(gè)簡單如入棧出棧就需要很強(qiáng)的邏輯感,編寫的時(shí)間是python的兩倍甚至更多。而兩個(gè)程序得出的結(jié)論是基本相同的。
三、不同編程語言應(yīng)用領(lǐng)域的對比
1.Java
首先我們要討論的是Java語言,相信只要略微了解編程的人就會(huì)聽過Java,其如今依然展現(xiàn)出強(qiáng)勢的增長勢頭,說其是目前最流行的編程語言也不為過。并且隨著移動(dòng)和大數(shù)據(jù)的發(fā)展,以基于java的Hadoop如今發(fā)展迅速,這也是java編程人員更加千金難尋。其可以用于各種各樣的領(lǐng)域,包括企業(yè)應(yīng)用及基礎(chǔ)設(shè)施,以及Wed應(yīng)用和移動(dòng)開發(fā)。
2.C/C++
C和C++都是基于C的語言,是目前最流行的編程語言,C常被用作系統(tǒng)以及應(yīng)用程序的編程語言,如嵌入式系統(tǒng)的應(yīng)用程序。C++語言為C的增強(qiáng),其在出現(xiàn)后迅速成為開發(fā)人員之間最流行的語言之一。它是用于開發(fā)系統(tǒng)軟件,應(yīng)用程序,設(shè)備驅(qū)動(dòng)程序,嵌入式軟件,高性能服務(wù)器和客戶端應(yīng)用及娛樂軟件,如視頻游戲。
3.Python
Python是應(yīng)用于設(shè)計(jì)各種各樣的應(yīng)用程序的動(dòng)態(tài)語言,往往比Tcl,Perl,Ruby,Scheme和Java更容易編寫。Python語法簡介而清晰,具有豐富和強(qiáng)大的類庫。它常被昵稱為膠水語言,它能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。
4.JavaScript
JavaScript在Web應(yīng)用上有著非常大的需求,主要目的是為了解決服務(wù)器端語言,比如Perl遺留的速度問題,為客戶提高更流暢的瀏覽效果。JavaScript主要用于實(shí)現(xiàn)為Web瀏覽器,以提供增強(qiáng)的用戶界面和動(dòng)態(tài)網(wǎng)站。
四、結(jié)論
(1)自身方面。將Python與其他所有編程語言均理解為編程語言環(huán)境中的一個(gè)物種,那么每個(gè)物種都擁有自身與其他物種不同的特點(diǎn)。而不同物種正是因?yàn)樽陨硭哂械莫?dú)特特點(diǎn)而對其環(huán)境作用產(chǎn)生不同的效果。一些特點(diǎn)會(huì)使其環(huán)境適應(yīng)性更強(qiáng),一些特點(diǎn)會(huì)使其相對更弱。在編程語言上,這些特點(diǎn)便表現(xiàn)為上述我們對于Python編程語言的優(yōu)缺點(diǎn)闡述。(2)環(huán)境因素。對于Python編程語言來說,環(huán)境的作用分為人類環(huán)境與社會(huì)環(huán)境。對于人類來說,Python的語法簡單易懂,易于人類學(xué)習(xí)操作。這就像生態(tài)學(xué)中生物總是在選擇最簡單容易的方式的獲取食物一樣,人類為了達(dá)成目標(biāo),也總會(huì)對更簡單方便的工具更加偏愛。這就使得人類總會(huì)樂意選擇它來進(jìn)行達(dá)成目的的嘗試,多的選擇也就使其廣為流傳。
參考文獻(xiàn):
[1]李秀敏, 王希杰, 刁麗娟. 面向研究型及應(yīng)用型醫(yī)學(xué)人才培養(yǎng)的Python教學(xué)探索[J]. 衛(wèi)生職業(yè)教育, 2018, 499(16):80-82.
[2]屈瑞陽, 吳茂成, 楊俊義,等. 基于Python語言的邁克爾遜干涉實(shí)驗(yàn)仿真及其在移動(dòng)終端的應(yīng)用[J]. 物理教師, 2018, 039(002):75-77.