Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,具備20多年的發展歷史,成熟且穩定。html
用任何編程語言來開發程序,都是爲了讓計算機幹活,好比下載一個MP3,編寫一個文檔等等,而計算機幹活的CPU只認識機器指令,因此,儘管不一樣的編程語言差別極大,最後都得「翻譯」成CPU能夠執行的機器指令。而不一樣的編程語言,幹同一個活,編寫的代碼量,差距也很大。
好比,完成同一個任務,C語言要寫1000行代碼,Java只須要寫100行,而Python可能只要20行。
因此Python是一種至關高級的語言。
Python(英國發音:/ˈpaɪθən/美國發音:/ˈpaɪθɑːn/),是一種面向對象的解釋型計算機程序設計語言,由荷蘭人GuidovanRossum於1989年發明,第一個公開發行版發行於1991年。java
Python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL(GNUGeneralPublicLicense)協議。Python語法簡潔清晰,特點之一是強制用空白符(whitespace)做爲語句縮進。node
Python具備豐富和強大的庫。它常被暱稱爲膠水語言,可以把用其餘語言製做的各類模塊(尤爲是C/C++)很輕鬆地聯結在一塊兒。常見的一種應用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),而後對其中有特別要求的部分,用更合適的語言改寫,好比3D遊戲中的圖形渲染模塊,性能要求特別高,就能夠用C/C++重寫,然後封裝爲Python能夠調用的擴展類庫。須要注意的是在您使用擴展類庫時可能須要考慮平臺問題,某些可能不提供跨平臺的實現。python
簡單:Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣。它使你可以專一於解決問題而不是去搞明白語言自己。linux
易學:Python極其容易上手,由於Python有極其簡單的。git
免費、開源。程序員
高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。web
可移植性:因爲它的開源本質,Python已經被移植在幾乎全部平臺上(通過改動使它可以工做在不一樣平臺上)。正則表達式
解釋性:Python解釋器把源代碼轉換成稱爲字節碼的中間形式,而後再把它翻譯成計算機使用的機器語言並運行。這使得使用Python更加簡單。也使得Python程序更加易於移植。算法
面向對象:Python既支持面向過程的編程也支持面向對象的編程。在「面向過程」的語言中,程序是由過程或僅僅是可重用代碼的函數構建起來的。在「面向對象」的語言中,程序是由數據和功能組合而成的對象構建起來的。
可擴展性:若是須要一段關鍵代碼運行得更快或者但願某些算法不公開,能夠部分程序用C或C++編寫,而後在Python程序中使用它們。(膠水語言)
可嵌入性:能夠把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。
豐富的庫:Python標準庫確實很龐大。它能夠幫助處理各類工做,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、Tk和其餘與系統有關的操做。這被稱做Python的「功能齊全」理念。除了標準庫之外,還有許多其餘高質量的庫,如wxPython、Twisted和Python圖像庫等等。
Python擁有一個強大的標準庫。Python語言的核心只包含數字、字符串、列表、字典、文件等常見類型和函數,而由Python標準庫提供了系統管理、網絡通訊、文本處理、數據庫接口、圖形系統、XML處理等額外的功能。Python標準庫命名接口清晰、文檔良好,很容易學習和使用。
Python標準庫的主要功能有:
開發效率高:豐富的庫,聽說豆瓣開發只用了3個月時間就上線了。
Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間在阿姆斯特丹爲了打發無聊的聖誕節而編寫的一個腳本解釋編程語言。之因此選中Python做爲編程的名字,是由於他是一個蒙提·派森的飛行馬戲團的愛好者。
創始人爲吉多·範羅蘇姆(Guido van Rossum)
Python 2.0於2000年10月16日發佈,主要是實現了完整的垃圾回收,而且支持Unicode。
Python 3.0於2008年12月3日發佈,此版不徹底兼容以前的Python源代碼。
(1).常規軟件開發
Python支持函數式編程和OOP面向對象編程,可以承擔任何種類軟件的開發工做,所以常規的軟件開發、腳本編寫、網絡編程等都屬於標配能力。
桌面軟件:PyQt、PySide、wxPython、PyGTK是Python快速開發桌面應用程序的利器。
(2).科學計算
隨着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等衆多程序庫的開發,Python愈來愈適合於作科學計算、繪製高質量的2D和3D圖像。和科學計算領域最流行的商業軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用範圍更普遍,有更多的程序庫的支持。雖然Matlab中的許多高級功能和toolbox目前仍是沒法替代的,不過在平常的科研開發之中仍然有不少的工做是能夠用Python代勞的。
Python是一門很適合作科學計算的編程語言,97年開始,NASA就大量使用Python進行各類複雜的科學運算,隨着NumPy、SciPy、Matplotlib、Enthought librarys等衆多程序庫的開發,使得Python愈來愈適合作科學計算、繪製高質量的2D和3D圖像。
(3).自動化運維、操做系統管理
這幾乎是Python應用的自留地,做爲運維工程師首選的編程語言,Python在自動化運維方面已經深刻人心,好比Saltstack和Ansible都是大名鼎鼎的自動化平臺。
在不少操做系統裏,Python是標準的系統組件。大多數Linux發行版以及NetBSD、OpenBSD和MacOSX都集成了Python,能夠在終端下直接運行Python。有一些Linux發行版的安裝器使用Python語言編寫,好比Ubuntu的Ubiquity安裝器,RedHatLinux和Fedora的Anaconda安裝器。GentooLinux使用Python來編寫它的Portage包管理系統。Python標準庫包含了多個調用操做系統功能的庫。經過pywin32這個第三方軟件包,Python可以訪問Windows的COM服務及其它WindowsAPI。使用IronPython,Python程序可以直接調用.NetFramework。通常說來,Python編寫的系統管理腳本在可讀性、性能、代碼重用度、擴展性幾方面都優於普通的shell腳本。
(4).雲計算
開源雲計算解決方案OpenStack就是基於Python開發的,搞雲計算的同窗都懂的
(5).WEB開發
基於Python的Web開發框架不要太多,好比耳熟能詳的Django,還有Tornado,Flask。其中的Python+Django架構,應用範圍很是廣,開發速度很是快,學習門檻也很低,可以幫助你快速的搭建起可用的WEB服務。
Python常常被用於Web開發。好比,經過mod_wsgi模塊,Apache能夠運行用Python編寫的Web程序。Python定義了WSGI標準應用接口來協調Http服務器與基於Python的Web程序之間的通訊。一些Web框架,如Django,TurboGears,web2py,Zope等,可讓程序員輕鬆地開發和管理複雜的Web程序。
(6).網絡爬蟲、服務器軟件
也稱網絡蜘蛛,是大數據行業獲取數據的核心工具。沒有網絡爬蟲自動地、不分晝夜地、高智能地在互聯網上爬取免費的數據,那些大數據相關的公司恐怕要少四分之三。可以編寫網絡爬蟲的編程語言有很多,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用很是普遍。
Python對於各類網絡協議的支持很完善,所以常常被用於編寫服務器軟件、網絡爬蟲。第三方庫Twisted支持異步網絡編程和多數標準的網絡協議(包含客戶端和服務器),而且提供了多種工具,被普遍用於編寫高性能的服務器軟件。
(7).數據分析
在大量數據的基礎上,結合科學計算、機器學習等技術,對數據進行清洗、去重、規格化和針對性的分析是大數據行業的基石。Python是數據分析的主流語言之一。
(8).人工智能
Python在人工智能大範疇領域內的機器學習、神經網絡、深度學習等方面都是主流的編程語言,獲得普遍的支持和應用。
(9).遊戲
不少遊戲使用C++編寫圖形顯示等高性能模塊,而使用Python或者Lua編寫遊戲的邏輯、服務器。相較於Python,Lua的功能更簡單、體積更小;而Python則支持更多的特性和數據類型。
近些年,編程語言Python的熱度愈來愈高,由於Python簡單,學起來快,是很多程序員入門的首選語言。
在網絡遊戲開發中,Python也有不少應用,相比於Lua or C++,Python比Lua有更高階的抽象能力,能夠用更少的代碼描述遊戲業務邏輯,Python很是適合編寫1萬行以上的項目,並且可以很好的把網遊項目的規模控制在10萬行代碼之內。
(10).金融分析與交易
金融分析包含金融知識和Python相關模塊的學習,學習內容囊括Numpy\Pandas\Scipy數據分析模塊等,以及常見金融分析策略如「雙均線」、「周規則交易」、「羊駝策略」、「Dual Thrust 交易策略」等。
量化交易,就是以數學模型替代人的主觀判斷來制定交易策略。一般會藉助計算機程序來進行策略的計算和驗證,最終也常直接用程序根據策略設定的規則自動進行交易。
Python 因爲開發方便,工具庫豐富,尤爲科學計算方面的支持很強大,因此目前在量化領域的使用很普遍。市面上也出現了不少支持 Python 語言的量化平臺。經過這些平臺,你能夠很方便地實現本身的交易策略,進行驗證,甚至對接交易系統(因爲政策緣由,如今不少交易接口暫停開放)。
Python 量化平臺:
目前國內比較知名的幾個平臺:
優礦 uqer.io聚寬 joinquant.com米筐 ricequant.com
國外知名平臺:
它們均可以使用 Python 進行策略開發。以優礦爲例,註冊以後,在「開始研究」頁面,新建一個 Notebook,就能夠開始用 Python 寫你本身的策略。
https://www.cnblogs.com/dhcn/p/7121435.html
示例:
#! 簡單的交易策略:天天買入一手股票池裏的全部股票。 start = '2018-01-01' # 回測起始時間 end = '2019-01-01' # 回測結束時間 benchmark = 'HS300' # 策略參考標準 universe = ['000001.XSHE', '600000.XSHG'] # 證券池,支持股票和基金 capital_base = 100000 # 起始資金 freq = 'd' # 策略類型,'d'表示使用日線回測 refresh_rate = 1 # 調倉頻率,表示執行handle_data的時間間隔,因爲freq = 'd',時間間隔的單位爲交易日 def initialize(account): # 初始化虛擬帳戶狀態 pass def handle_data(account): # 每一個交易日的買入賣出指令 for stock in account.universe: order(stock,100)
結果:
Python的就業方向
在過去的十年裏,Python語言得到了最大的增加幅度——十年語言之冠。
語言當前排行:
排行發展:
國外誰在使用python
Python Google的三大編程語言之一
在Google,C++、Java、Python是使用率排名前三的編程語言,使用Python的開發團隊也是Google的第三大研發部門。
在Google內部的不少項目,例如Google Engine使用C++編寫性能要求極高的部分,而後用Python或Java/Go調用相應的模塊。
YouTube主要是Python寫的
國內誰在使用python
騰訊遊戲運營支撐體系的開發團隊,在使用django/celery/rabitmq/mongodb開發了一個已普遍使用的內部開放平臺。
豆瓣最初使用Python開發,只是用了3個月。
資料:
wiki:http://zh.wikipedia.org/zh/Python
Chinaunix的Python論壇資料
《OReilly-Learning-Python-4th-Edition-Oct-2009》
《簡明 Python 教程》(中文),對應的英文版是《A Byte of Python》
深刻 Python 3,http://goo.gl/cyrUY
工具:
UliPad 代碼編輯工具(自己由python編寫)
Pydev:eclipse + pydev插件
Eric:基於PyQt的自由軟件,功能強大。
1)上python官網下載python運行環境(https://www.python.org/downloads/),建議下載穩定版本,不推薦使用最新版本
2)上pycharm官網下載最新版的IDE(http://www.jetbrains.com/pycharm/download/#section=windows),官網提供了mac、windows和linux三種版本
Python IDE
優秀的Python IDE有不少,這裏介紹幾款:
3)上postgresql官司網下載最新版的數據庫(https://www.postgresql.org/download/windows/ 打開頁面後,點擊Download the installer進入下載頁,而後選擇版本和操做系統,再點擊下載)
1)安裝python運行環境
雙擊python-3.5.2.exe
通常採用自定義安裝比較好,否則自動安裝會把環境安裝到我的目錄裏,有時要找起來很麻煩
另外第二個紅框前面的勾記錄打上,否則須要手動在windows環境變量的路徑中添加python安裝路徑
這裏將安裝路徑手動修改一下,能夠安裝到C盤也能夠安裝到D盤
完成安裝
而後咱們打開CMD,在裏面輸入python,就能夠直接進入進行編碼了
咱們能夠輸入print('hello world!')來測試一下python運行,以下圖
若是輸入python出現下面錯誤
那就得手動將python安裝路徑添加到系統環境變量中
打開開始菜單,對計算機點右鍵=》屬性
選中後點擊編輯,在最後面分別添加
;C:\Python\Scripts\;C:\Python\;
這是剛纔的安裝路徑
而後打開新的CMD(要開新的cmd纔有效),輸入python就能夠看到剛纔的提示進入編碼界面了
雙擊pycharm安裝包,通常按正常的默認安裝項就能夠了
這裏是選擇IDE編輯界面皮膚的,通常來講使用黑底灰字看起來沒那麼刺眼,對眼好一點,這裏選擇之後還能夠在裏面設置。
提交後安裝成功。
漢化方法,不建議漢化
到網上下載個漢化包更名爲resources_cn.jar,而後直接複製到安裝路徑下的lib文件夾裏,從新打開IDE就自動漢化了
想要取消漢化,只須要將這個文件刪除,從新打開IDE就自動恢復英文版本
建議不要進行漢化,由於漢化後IDE有一些功能使用不了或點擊不了
要配置編輯界面皮膚,可按下面進行配置。通常字體按默認項會比較小,也能夠按下面的配置修改大一些。
這裏的列表項選擇可使用不一樣的皮膚
使用默認項時,字體大小沒法直接進行修改,點擊Save As... 另存爲後就能夠修改
另存爲後如今就能夠直接修改了
3)安裝postgresql數據庫
雙擊安裝文件,而後按默認項安裝就能夠了
最後一步這個勾最好去掉,否則會彈出安裝各類插件的窗口,通常來講那些插件咱們暫時都用不上,不用進行安裝
安裝包有兩種方法,一種是使用命令行,一種是IDE選擇安裝
1)命令行安裝方式
打開cmd,輸入pip install flask (你要安裝的包名稱),按回車就開始進入安裝了
等一會就安裝成功了
通常咱們須要將pip升級到最新版本,這樣能夠減小安裝問題的出現
在cmd中輸入下面命令,就會啓動pip升級
1
|
pip install https:
/
/
pypi.python.org
/
packages
/
11
/
b6
/
abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447
/
pip
-
9.0
.
1.tar
.gz
#md5=35f01da33009719497f01a4ba69d63c9
|
咱們在cmd中輸入:pip --version 就能夠看到當前的pip版本了
萬一pip升級失敗,也不用怕,能夠到python官網進行下載安裝包進行安裝升級
在瀏覽器地址欄中輸入:https://pypi.python.org/pypi/pip
下載安裝包,並解壓到C盤根目錄
在DOS下輸入下圖命令,進入pip-9.0.1文件夾,而後輸入:python setup.py install 進入pip安裝
完成pip升級操做
2)IDE安裝方式
打開IDE,點擊:File => Default Settings
而後選擇Project Interpreter,就能夠看到已經安裝好的python包列表了,點擊右上角的+進入安裝包選擇界面
在頂部搜索框裏輸入想要安裝的包名稱,就能夠搜索到安裝包,而後選擇它,點擊左下角的Install Package,IDE就開始進入下載安裝了,若是出現因爲網絡緣由形成安裝失敗,能夠點擊其餘項後再點回來,而後點安裝,屢次後就能夠安裝成功,反覆進行後仍是沒法安裝成功的,能夠點擊查看出錯緣由,也可使用命令方式進行,直接看到出錯緣由。
完成以上操做後,就能夠開始開發pythont程序了
商業應用建議你們購買版權,學習使用能夠綠化。
地址:https://gitee.com/pengzhile/jetbrains-agent
使用方法:
0. 先下載壓縮包解壓後獲得jetbrains-agent.jar,把它放到你認爲合適的文件夾內。
若是你沒有gitee帳號,你也能夠在這裏下載:
下載頁面:https://zhile.io/2018/08/17/jetbrains-license-server-crack.html
1. 點擊你要註冊的IDE菜單:"Configure|Help" -> "Edit Custom VM Options ..."
若是提示是否要建立文件,請點"是|Yes"。
參考文章:https://intellij-support.jetbrains.com/hc/en-us/articles/206544869
2. 在打開的vmoptions編輯窗口末行添加:"-javaagent:/absolute/path/to/jetbrains-agent.jar"
必定要本身確認好路徑,填錯會致使IDE打不開!!!最好使用絕對路徑。
如: -javaagent:/Users/neo/jetbrains-agent.jar
若是仍是填錯了,參考這篇文章編輯vmoptions補救:
https://intellij-support.jetbrains.com/hc/en-us/articles/206544519
3. 重啓你的IDE。
4. 註冊選擇License server方式,地址填入:http://jetbrains-license-server (應該會自動填上)
或者點擊按鈕:"Discover Server"來自動填充地址
5. 若是提示錯誤:
"Error opening zip file or JAR manifest missing : jetbrains-agent.jar"
這種狀況請試着填上jar文件的絕對路徑.
** 若是你想要離線激活,請使用:ACTIVATION_CODE.txt 內的註冊碼激活(需按上述步驟配置javaagent)。
若是你須要自定義License name,請加羣告知。
** 未註冊IDE找不到Help菜單可選擇「試用(Evaluate for free)」後打開主界面。
本項目在最新2018.3.5上測試經過(請注意閱讀本文件9行)。
理論上適用於目前Jetbrains全系列全部新老版本。
IDE升級會從舊版本導入以上設置,導入配置後可能提示未註冊(由於剛導入的vmoptions未生效),直接重啓IDE便可,無需其餘操做。
在命令行模式下敲命令python,就看到相似以下的一堆文本輸出,而後就進入到Python交互模式,它的提示符是>>>。
在Python交互模式下輸入exit()並回車,就退出了Python交互模式,並回到命令行模式:
在交互模式的提示符>>>下,直接輸入代碼,按回車,就能夠馬上獲得代碼執行結果。如今,試試輸入1000+2000,看看計算結果是否是3000:
在Python交互式模式下,能夠直接輸入代碼,而後執行,並馬上獲得結果。
在Python的交互式命令行寫程序,好處是一下就能獲得結果,壞處是無法保存,下次還想運行的時候,還得再敲一遍。
在一個沒有中文的目錄下建立一個名稱爲Hello.py的文件,使用記事本打開,編寫以下代碼:
#! Hello World! print ("Hello world!");
在命令行編譯運行:
啓動PyCharm
啓動成功後選擇File菜單下的New Project項
設置項目名稱與路徑
新建一個python文件
輸入文件名稱,編寫源程序
編譯並運行,選擇Run菜單下的run運行
基本輸入與輸出:
name=input("請輸入名稱:"); print("Hello Python!"+name); print("1+1=",1+1);