Python 被譽為全世界高效的編程語言,同時也被稱作“膠水語言”,那它為何能如此受歡迎,下面我們就來說說 Python 入門學(xué)習(xí)的必備 8個知識點,也就是它為何能夠如此受歡迎的原因。
1.Python 適用于哪些應(yīng)用場景?
這個沒有固定答案,很多人都說 Python 不適合開發(fā) GUI 的程序,但 Python 自己的 IDE——IDEL 和第三方的 IDE——Eric 就是 Python 寫的。
目前看到的更多的人是拿來寫 Web,使用如 Django、web.py 框架、Flask 也是。也有一個情況用得比較多,用 Python 當(dāng)膠水,與各種語言結(jié)合,共同完成某軟件功能,注意觀察也許你會發(fā)現(xiàn)在安裝一些軟件的時候會有 Python 的身影。
2.Python 能夠勝任大數(shù)據(jù)嗎?
Python 很適合做大數(shù)據(jù)相關(guān)的分析,內(nèi)置的 C 編譯的模塊能應(yīng)對常見的操作,個別極端的算法建議用 C 重寫相關(guān)模塊。
Python 本身的特點更多的是高效率的開發(fā)和簡單的維護,速度交給 C 去吧,更多的問題其實出自寫代碼的人沒有更好地使用,而不是效率不夠高。比如排序,本來 Python 有非常高效的內(nèi)置 C 編譯的模塊,卻非要自己寫算法,這樣的結(jié)果不慢都是奇怪的。
另外還要看需求是 CPU 密集型,還是 IO 密集型,如果是 CPU 密集型建議這部分操作由 C 實現(xiàn),IO 密集型的效率不會因為 Python 而有多少改變。Python的效率是高,但框架搭起來也費勁,所以還是結(jié)合著來吧,也因此,Python被稱為膠水語言。
3.Python 是否可以完全代替 Shell?
完全可以,Shell 的功能 Python 均可實現(xiàn),而且代碼量更少、結(jié)構(gòu)更優(yōu)、可閱讀性更好,而 Python 可實現(xiàn)的功能 Shell 卻不一定能,如運維中會用到的用于網(wǎng)絡(luò)通信的 Socket 模塊、用于 Web 的 Django 框架、用于性能采集的 psutil 模塊等,而且 Shell 對操作系統(tǒng)的命令依賴性較強,Python 可在更大程度上規(guī)避。
4.Python 是否可以訪問常見的數(shù)據(jù)庫?
可以,Python 可以訪問常見的各種數(shù)據(jù)庫,如 Oracle、MySQL、Vertica、 SQLServer 等,加載相應(yīng)的模塊即可,模塊列表如下:
Oracle:cx_Oracle
MySQL:MySQLdb
5.Python 開發(fā)是面向過程、函數(shù)還是對象?
Python 雖然是解釋型語言,但從設(shè)計之初就已經(jīng)是一門面向?qū)ο蟮恼Z言,對于 Python 來說一切皆為對象。正因為如此,在 Python 中創(chuàng)建一個類和對象是很容易的,當(dāng)然如果習(xí)慣面向過程或者函數(shù)的寫法也是可以的,Python 并不做硬性的限制。
6.如何快速掌握 Python?
學(xué)習(xí) Python 其實最重要的是學(xué)習(xí)模塊,而非語法本身,Python 的語法十分簡單,只要大學(xué)學(xué)過 C 或者數(shù)據(jù)結(jié)構(gòu)課程,甚至完全沒學(xué)過的人也是可以輕松掌握的。掌握了語法已經(jīng)可以實現(xiàn) Shell 的功能,但要想提高模塊的學(xué)習(xí)必不可少,如運維人員經(jīng)常用的有:
psutil:獲取性能信息
socket:基本網(wǎng)絡(luò)通信
IPy:IP 地址相關(guān)處理
dnsptyhon:域名相關(guān)處理
difflib:文件比較
pexpect:屏幕信息獲取,常用于自動化
paramiko:SSH 客戶端
XlsxWriter:Excel 相關(guān)處理
其他還有很多功能模塊,每天也不斷地有新的模塊、框架、組件產(chǎn)生,如用于與 Java Script 做橋接的 PythonJS,甚至 Python 還可以編寫 Map 和Reduce。
7.Python 可運行在哪些平臺上?跨平臺性如何?
支持常見的主流平臺,如 AIX、HPUX、Solaris、Linux、Windows 等,除Windows 外常見的 Unix、Linux 平臺均帶有原生的 Python,但版本一般較低。
關(guān)于跨平臺和其他跨平臺語言一樣,要注意有些個別模塊是單一平臺特有的,整體的跨平臺性還是很好的,不必為適應(yīng)多平臺寫多套代碼。
但這不是說一點限制都沒有:首先,同一個版本的中間文件.py 和.pyc 以及.pyo 是跨平臺的;其次,PC 與移動終端,如:手機、Pad 不可跨平臺(原因見下一條);最后,不能跨處理器架構(gòu),如:Intel 與 ARM、64 位與 32 位。
8.Python 運行速度如何?
通常 Java 的速度比 Python 快些。Python 調(diào)用 C 擴展除外(也可以直接用 CPython)。
對于 Python 速度太慢的批評,Python 語言作者 Guido van Rossum 說:如果你開發(fā)的系統(tǒng)發(fā)現(xiàn)了性能瓶頸,通常最有效率的做法是找到出問題的代碼塊,用速度較快的語言如 C 或 C++寫一些代碼替換該功能或該模塊,而不是用 C 或 C++重寫整個系統(tǒng),因為對大部分代碼而言,語言的速度是無關(guān)緊要的。
學(xué)習(xí) Python 更是一個發(fā)展自己的好機會,畢竟人工智能時代已經(jīng)到來,Python 作為人工智能時代的主力軍是非常有前景的。