◆葛書榮
基于Python語(yǔ)言編程特點(diǎn)及應(yīng)用之探討
◆葛書榮
(陜西省安康職業(yè)技術(shù)學(xué)院 陜西 725000)
Python語(yǔ)言是一種面向?qū)ο蟮挠?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,其編程語(yǔ)言靈活,功能強(qiáng)大,最大的特點(diǎn)是代碼簡(jiǎn)練整齊,優(yōu)雅干凈,并且擁有非常豐富的跨平臺(tái)的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)。Python的關(guān)鍵詞較少,縮進(jìn)格式不僅帶來了閱讀上的便捷,也有利于程序的進(jìn)一步訂正修改。目前正處在大數(shù)據(jù)的時(shí)代,而Python站在了人工智能和大數(shù)據(jù)的風(fēng)口浪尖上,因其眾多的標(biāo)準(zhǔn)庫(kù)以及方便性,能更加方便快捷地實(shí)現(xiàn)高階算法。本文將從Python語(yǔ)言的編程特點(diǎn)與其應(yīng)用出發(fā),深化學(xué)習(xí)者對(duì)Python語(yǔ)言的認(rèn)識(shí)。
Python;編程特點(diǎn);應(yīng)用;大數(shù)據(jù)
Python是由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的Guido van Rossum于1990 年代初設(shè)計(jì)。相較于語(yǔ)法結(jié)構(gòu)復(fù)雜的傳統(tǒng)編程語(yǔ)言如C、C++、java而言,Python語(yǔ)言的解釋性和交互性十分強(qiáng)大,在實(shí)際編程工作中十分便捷。Python作為腳本語(yǔ)言,擁有廣泛的場(chǎng)景運(yùn)用,無論是基礎(chǔ)的程序處理、數(shù)據(jù)爬蟲,還是Web開發(fā)以及游戲設(shè)計(jì)的運(yùn)用,Python的開發(fā)效率都非常高。
對(duì)于一個(gè)良好的Python程序而言,閱讀方便是其很重要的一個(gè)特點(diǎn),就像在閱讀一段嚴(yán)格要求層級(jí)的論文稿件一樣。在使用的過程中不必注重語(yǔ)言本身,而是更關(guān)心如何解決問題,對(duì)于學(xué)習(xí)者而言更能直接培養(yǎng)編程邏輯思維。
Python包括面向過程與面向?qū)ο?。面向?qū)ο?,是通過定義出函數(shù)與數(shù)據(jù)的名稱,把事物對(duì)象化,方便使用者再次調(diào)用。而面向過程是以過程為中心,思考出每一個(gè)步驟,用函數(shù)逐一實(shí)現(xiàn)。Python的簡(jiǎn)潔性使其能夠非常方便快捷地實(shí)現(xiàn)面向?qū)ο蠛兔嫦蜻^程編程[1]。
Python能夠在眾多平臺(tái)上運(yùn)行,這是因?yàn)槠溟_源的特性。只要能夠仔細(xì)地避免過度依賴系統(tǒng),那么在眾多平臺(tái)上運(yùn)行Python程序,是沒有沒問題的。這些平臺(tái)常見的包括了Windows、Linux、Android平臺(tái)等等。
計(jì)算機(jī)不能夠直接理解高級(jí)語(yǔ)言,必須通過編譯性語(yǔ)言。例如C或者是C++語(yǔ)言寫出來的程序,它們可以將源文件里的語(yǔ)言通過編譯轉(zhuǎn)到計(jì)算機(jī)能夠理解的機(jī)器語(yǔ)言。而Python有一個(gè)非常優(yōu)越的特點(diǎn),即用Python編寫的程序可以直接由內(nèi)在的解釋器將源文件轉(zhuǎn)為字節(jié)碼的中間形式,再轉(zhuǎn)化為計(jì)算機(jī)能夠理解的機(jī)器語(yǔ)言,而不需要編譯為二進(jìn)制的代碼[2]。
Python的代碼是開源的。使用者可以從GitHub或是其他社區(qū)中下載軟件的源代碼,將它進(jìn)行任意刪減增加的改動(dòng),也可以將其中一部分用于軟件開發(fā)中。Python是FLoss之一,F(xiàn)LOSS的理念是將知識(shí)進(jìn)行共享,希望有非常多優(yōu)秀的人加入Python,讓Python變得更加優(yōu)秀。
在Web應(yīng)用開發(fā)中,Python應(yīng)用的非常高,其中有很多Web框架,如Django,TurboGears等,可以讓使用者輕松地創(chuàng)建與管理Web應(yīng)用程序。面對(duì)數(shù)量如此之多的框架,人們可能會(huì)不知作何選擇,但是在實(shí)際應(yīng)用上,框架與框架有很多類似的地方,代碼之間也可以重復(fù)利用。
Web應(yīng)用開發(fā)包括了桌面應(yīng)用程序開發(fā),Web應(yīng)用程序開發(fā),Web前端開發(fā)以及Web后端開發(fā)。今天的網(wǎng)絡(luò)發(fā)展隨處可見,互聯(lián)網(wǎng)也不斷更迭,但這也是未來桌面應(yīng)用程序和網(wǎng)絡(luò)程序發(fā)展的最大趨勢(shì)。這將是技術(shù)性的??茖W(xué)技術(shù)是改變生活方式技術(shù)的首要原因。
Python在處理科學(xué)計(jì)算方面有著十分高的效率。相較于Matlab而言,隨著Numpy、Pandas、Matplotlib等標(biāo)準(zhǔn)庫(kù)的開發(fā),Python不僅編程代碼簡(jiǎn)單易懂,而且還能簡(jiǎn)單繪制出高質(zhì)量的數(shù)據(jù)分析圖像。除了在科學(xué)計(jì)算中,在云計(jì)算、人工智能以及數(shù)據(jù)處理等方面都有著十分廣泛的運(yùn)用。它已經(jīng)逐漸成為各大理工類學(xué)科甚至是文史類學(xué)科領(lǐng)域的科研計(jì)算工具[3]。
(1)NumPy
Numpy是Python的開源數(shù)值計(jì)算擴(kuò)展。這個(gè)工具庫(kù)能夠非常方便以及快速地處理大型矩陣,使得其在進(jìn)行多維數(shù)組的操作時(shí)能夠大大減少所耗時(shí)間,而且比Python的嵌套列表結(jié)構(gòu)要高效得多。另外,在數(shù)組的操作中,numpy能夠提供大量的數(shù)學(xué)函數(shù)庫(kù),使用者只需簡(jiǎn)單調(diào)用就能夠?qū)崿F(xiàn)復(fù)雜的數(shù)學(xué)功能。對(duì)于數(shù)值編程功能而言,如矩陣數(shù)據(jù)計(jì)算、3D圖像矩陣處理以及精密的數(shù)字處理等,處理起來也是十分方便。
(2)Matplotlib
Matplotlib是Python中最著名的繪圖庫(kù)。Matplotlib能夠在Python上繪制二維圖形,類似于基于Python的MATLAB圖表繪制系統(tǒng)。開發(fā)者可以僅僅使用幾行代碼,便可以生成直方圖、散點(diǎn)圖、動(dòng)態(tài)圖表等。它擁有一套與Matlab類似的命令,所以在進(jìn)行出圖時(shí)十分地方便。在GUI應(yīng)用中也可以將繪圖控件插入其中。通常使用Numpy或者其他標(biāo)準(zhǔn)庫(kù)處理大量數(shù)據(jù)時(shí),需要將數(shù)據(jù)可視化,增加研究結(jié)論的可視性與其美觀性,讓人能夠更加直觀了解到數(shù)據(jù)的分布、趨勢(shì)以及其變化等等。
Python在科學(xué)計(jì)算中的運(yùn)用十分便捷,例如在3D的坐標(biāo)下畫出網(wǎng)絡(luò)圖,其代碼在下方,結(jié)果如圖1所示。
圖1 3D作圖
from mpl_toolkits.mplot3dimportaxes3d
import matplotlib.pyplot as plt
import numpy as np
fig = pit.figure()
ax = fig.Add_subplot(111,projection= ‘3d’)
X,Y,Z = axes3d.get_test_data(0.2)
ax.plot_wireframe(X,Y,Z)
pit.show()
Python簡(jiǎn)潔的代碼與其動(dòng)態(tài)代碼的特性給其帶來了非常明顯的優(yōu)勢(shì)。它在科學(xué)計(jì)算上的運(yùn)用已經(jīng)十分廣泛,并且在云計(jì)算方面也有自己的計(jì)算特點(diǎn)。因此在科學(xué)計(jì)算時(shí)可以更多地重視Python的運(yùn)用,發(fā)揮其在科研領(lǐng)域的價(jià)值。
自從2016年Alphago在人機(jī)互動(dòng)圍棋比賽中的表現(xiàn)以來,AI掀起了一股新的熱潮,在這之后Ai技術(shù)發(fā)展突飛猛進(jìn)。技術(shù)的發(fā)展到成熟的應(yīng)用用了短短不到幾年。人工智能的實(shí)現(xiàn)主要是通過機(jī)器學(xué)習(xí)算法,它涉及概率論、統(tǒng)計(jì)學(xué)、凸分析等學(xué)科,是人工智能的核心。機(jī)器通過分析大量數(shù)據(jù)來學(xué)習(xí)。例如,只需要輸入大量的貓和狗的圖片給機(jī)器進(jìn)行學(xué)習(xí),它們可以通過圖片進(jìn)行練習(xí)來總結(jié)和識(shí)別特定的目標(biāo),最終將任何一張圖片送給模型學(xué)習(xí),模型都能夠分辨出是不是貓或者狗。
人工智能在實(shí)際生活中有十分多的應(yīng)用場(chǎng)景。
(1)自動(dòng)駕駛:近年來,無人駕駛成為了一門熱門話題,許多的研究所都投入了對(duì)自動(dòng)駕駛的研究,甚至在許多地區(qū)已經(jīng)有自動(dòng)駕駛的打車公司開始運(yùn)營(yíng),如百度自動(dòng)租車服務(wù)在2020年宣布開始在北京全面開放。百度曾推出了“百度無人駕駛汽車”的研發(fā)計(jì)劃,其自主研發(fā)的無人駕駛汽車阿波羅也出現(xiàn)在2018年央視春節(jié)聯(lián)歡晚會(huì)上。
(2)人臉識(shí)別:也稱人像識(shí)別、面部識(shí)別,是一種基于人臉信息特點(diǎn)來進(jìn)行身份確認(rèn)的生物識(shí)別技術(shù)。人臉識(shí)別技術(shù)是計(jì)算機(jī)視覺里的熱門研究領(lǐng)域,主要由人臉檢測(cè)和人臉識(shí)別兩個(gè)環(huán)節(jié)組成,其中也集成了人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等專業(yè)技術(shù)。在20世紀(jì)60年代到20世紀(jì)80年代之間,人臉識(shí)別技術(shù)從研究開始,到計(jì)算機(jī)技術(shù)和光學(xué)成像技術(shù)的不斷發(fā)展,人臉識(shí)別技術(shù)水平得到不斷提高。在20世紀(jì)90年代后期,人臉識(shí)別技術(shù)進(jìn)入初級(jí)應(yīng)用階段。目前,人臉識(shí)別技術(shù)已經(jīng)深度普及到了日常生活中,生物識(shí)別技術(shù)不僅方便了整個(gè)社會(huì),也促進(jìn)了技術(shù)的不斷更新。
綜上所述,本文從五個(gè)方面探討了Python語(yǔ)言的五大特點(diǎn)以及三大場(chǎng)景應(yīng)用。Python自1991年開始,其動(dòng)態(tài)編程語(yǔ)言的特點(diǎn)讓其在今天廣受歡迎。Python的魅力來源于其根據(jù)信息化對(duì)最新領(lǐng)域的快速應(yīng)用,發(fā)展至今,在醫(yī)學(xué)、工學(xué)、理學(xué)、生物等研究領(lǐng)域中,Python都有著出色的應(yīng)用。在這個(gè)技術(shù)更迭以及互聯(lián)網(wǎng)信息高速發(fā)展的時(shí)代,像Python這樣開源性強(qiáng),簡(jiǎn)潔性高,并且擁有大量標(biāo)準(zhǔn)庫(kù)的編程語(yǔ)言能夠引導(dǎo)人們更加方便快捷、直接深入地探索科學(xué)中的未知領(lǐng)域。
[1]裘鍇. Python語(yǔ)言編程在計(jì)算機(jī)理論教學(xué)上的應(yīng)用探索[J]. 納稅,2017,000(021):188-188.
[2]謝生鋒. 基于Python的動(dòng)態(tài)語(yǔ)言特點(diǎn)探討[J]. 電腦知識(shí)與技術(shù),2017(33):131-132.
[3]姚建盛,李淑梅. Python在科學(xué)計(jì)算中的應(yīng)用[J]. 數(shù)字技術(shù)與應(yīng)用,2016(11):76-76.
[4]肖旻,陳行. 基于Python語(yǔ)言編程特點(diǎn)及應(yīng)用之探討[J]. 電腦知識(shí)與技術(shù),2014(34):8177-8178.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2021年10期