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