前言 為何使用Python Python 是一種效率極高的語言。與其他眾多的語言相比,實現相同功能,使用Python編寫的程式包含的代碼更少。Python的語法簡單,易上手,使用Python編寫的代碼更容易閱讀、調試和擴展。 Python使用領域也比較多。Python應用領域有:雲計算、人工智慧、大 ...
前言
為何使用Python
Python 是一種效率極高的語言。與其他眾多的語言相比,實現相同功能,使用Python編寫的程式包含的代碼更少。Python的語法簡單,易上手,使用Python編寫的代碼更容易閱讀、調試和擴展。
Python使用領域也比較多。Python應用領域有:雲計算、人工智慧、大數據、金融、web開發、網路編程、科學運算、GUI圖形開發、自動化運維、游戲開發、解決商業問題以及供各類有趣的公司開發內部公司等。
1. Python 簡介
Python的創始人是Guido van Rossum;Python的是一種開源的、解釋型語言、動態語言、強類型定義語言(類型安全的語言),即python是一門動態解釋性的強類型定義語言。
1.1 Python應用領域
(1)雲計算。Python是雲計算最火的語言, 典型應用OpenStack。
(2)人工智慧。基於大數據分析和深度學習而發展出來的人工智慧本質上已經無法離開python的支持,目前世界優秀的人工智慧學習框架如Google的ransorFlow 、FaceBook的PyTorch以及開源社區的神經網路庫Karas等是用python實現的,甚至微軟的CNTK(認知工具包)也完全支持Python,而且微軟的Vscode都已經把Python作為第一級語言進行支持。
(3)大數據。Python相對於其它解釋性語言最大的特點是其龐大而活躍的科學計算生態,在數據分析、交互、可視化方面有相當完善和優秀的庫(python數據分析棧:Numpy Pandas Scipy Matplotlip Ipython), 並且還形成了自己獨特的面向科學計算的Python發行版Anaconda,而且這幾年一直在快速進化和完善,對傳統的數據分析語言如R MATLAB SAS Stata形成了非常強的替代性。
(4)WEB開發。python相比php\ruby的模塊化設計,非常便於功能擴展;多年來形成了大量優秀的web開發框架,並且在不斷迭代;如目前優秀的全棧的django、框架flask,都繼承了python簡單、明確的風格,開發效率高、易維護,與自動化運維結合性好,python已經成為自動化運維平臺領域的事實標準;眾多大型網站均為Python開發,Youtube, Dropbox, 豆瓣。
(5)系統運維。Python在與操作系統結合以及管理中非常密切,目前所有linux發行版中都帶有python,且對於linux中相關的管理功能都有大量的模塊可以使用,例如目前主流的自動化配置管理工具:SaltStack Ansible(目前是RedHat的)。目前在幾乎所有互聯網公司,自動化運維的標配就是python+Django/flask,另外,在虛擬化管理方面已經是事實標準的openstack就是python實現的,所以Python是所有運維人員的必備技能。
(6)金融。量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作為動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤其擅長策略回測
(7)圖形GUI。PyQT, WxPython,TkInter。
1.2 Python的優缺點
1.2.1 Pyhon優點
(1)有良好的平臺相容性,在任何環境中都可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就可以,可以快速部署,不用停機維護。
(2)一旦一個變數被指定了某個數據類型,如果不經過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:如果你定義了一個整型變數a,那麼程式根本不可能將a當作字元串類型處理。強類型定義語言是類型安全的語言。
(3)簡單易學。特別適合初學者學Python,不但入門容易,而且將來深入下去,可以編寫那些非常非常複雜的程式。
(4)開發效率高。Python有非常強大的第三方庫,基本上你想通過電腦實現任何功能,Python官方庫里都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大降低開發周期,避免重覆造輪子。
(5)高級語言。當你用Python語言編寫程式的時候,你無需考慮諸如如何管理你的程式使用的記憶體一類的底層細節。
(6)可擴展性好。如果你需要你的一段關鍵代碼運行得更快或者希望某些演算法不公開,你可以把你的部分程式用C或C++編寫,然後在你的Python程式中使用它們。
(7)可嵌入性強。你可以把Python嵌入你的C/C++程式,從而向你的程式用戶提供腳本功能。
1.2.2 Python缺點
(1)每次運行的時候都要解釋一遍,性能上不如編譯型語言。
(2)速度慢。Python 的運行速度相比C語言確實慢很多,跟JAVA相比也要慢一些,因此這也是很多所謂的大牛不屑於使用Python的主要原因,但其實這裡所指的運行速度慢在大多數情況下用戶是無法直接感知到的,必須藉助測試工具才能體現出來,比如你用C運一個程式花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是非常誇張了,但是你是無法直接通過肉眼感知的,因為一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數情況下Python已經完全可以滿足你對程式速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種情況下,當然還是建議你用C去實現的。
(3)代碼不能加密。因為PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認為這算是一個缺點,如果你的項目要求源代碼必須是加密的,那你一開始就不應該用Python來去實現。
(4)多線程問題。這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是電腦程式設計語言解釋器用於同步線程的工具,使得任何時刻僅有一個線程在執行,Python的線程是操作系統的原生線程。在Linux上為pthread,在Windows上為Win thread,完全由操作系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程式的執行線程。即使在多核CPU平臺上,由於GIL的存在,所以禁止多線程的並行執行。
1.3 Python解釋器
當我們編寫Python代碼時,我們得到的是一個包含Python代碼的以.py為擴展名的文本文件。要運行代碼,就需要Python解釋器去執行.py文件。由於整個Python語言從規範到解釋器都是開源的,所以理論上,只要水平夠高,任何人都可以編寫Python解釋器來執行Python代碼(當然難度很大)。事實上,確實存在多種Python解釋器。
(1)CPython。當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。
CPython是使用最廣的Python解釋器。教程的所有代碼也都在CPython下執行。
(2)IPython。IPython是基於CPython之上的一個互動式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
(3)PyPy。PyPy是另一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要瞭解PyPy和CPython的不同點。
(4)Jython。Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java位元組碼執行。
(5)IronPython。IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的位元組碼。
1.4 Python的安裝
官方網站:https://www.python.org/downloads
官方文檔:https://docs.python.org/2.7/或https://docs.python.org/3.6/或或https://docs.python.org/3.7/等。
1.4.1 在Windows系統中安裝Python
(1)下載安裝包。到官網下載需要安裝的Python版本,目前最新版本為Python3。
(2)點擊執行文件進行安裝。可以自定義安裝目錄,其餘都下一步即可。
(3)配置環境變數。為了在cmd視窗方面運行Python,請將Python的安裝路徑配置到環境變數的path中。例如:你的Python安裝的D:\Python36,那麼把D:\Python36加到path中,並且用分號“;”將其與原有的path的值。
(4)在cmd視窗執行python。如果出現了python提示符(>>>),就說明Windows找到了你剛安裝的Python版本。
說明:如果安裝時勾選了“Add Python to PATH”,就不需手動再配置環境變數。
1.4.2 編寫你的第一個Python程式
每當我們學習一門編程語言的時候,似乎“Hello World”都是我們入門的第一個小程式。那就一起體驗這中入門儀式吧。
由於Python2和Python3在語法上有些區別,因此,如果你安裝的是Python2,那麼在cmd視窗輸入python,回車進入python的交互器,在提示符(>>>)後輸入:print "Hello World!",如下圖所示:
如果你安裝的是Python3,那麼在cmd視窗輸入python,回車進入python的交互器,在提示符(>>>)後輸入:print("Hello World!"),如下圖所示:
以上是執行在終端運行Python程式,那麼怎麼保存Python代碼呢?
每一種編程語言都有自己的尾碼標識,Python也不例外,Python的程式尾碼為“.py”。例如我們將在Python3上執行的代碼保存為:hello_world.py文件,並將其保存到H盤,那麼進入cmd視窗後,進入H盤,用命令python hello_world.py來執行這個文件,如下圖所示:
1.4.3 安裝文本編輯器
Geany是一款簡單的文本編輯器:它易於安裝;讓你能夠直接運行幾乎所有的程式(而無需通過終端);使用不同的顏色來顯示代碼,以突出代碼語法;在終端視窗中運行代碼,讓你能夠習慣使用終端。
下載地址:https://www.geany.org/Download/Releases
預設安裝即可。
1.4.4 PyCharm
PyCharm是一種Python IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用於支持Django框架下的專業Web開發。
PyCharm有社區版和專業版,專業版為付費的。
下載地址:https://www.jetbrains.com/pycharm/
安裝,選擇自定義路徑,也可以預設安裝。
PyCharm的使用簡介:http://blog.csdn.net/msda/article/details/38705525