第一章java
Python的創始人爲吉多.範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多.範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。之因此選中Python做爲程序的名字,是由於他是BBC電視劇——蒙提.派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者。ABC是由吉多參加設計的一種教學語言。就吉多本人看來,ABC這種語言很是優美和強大,是專門爲非專業程序員設計的。可是ABC語言並無成功,究其緣由,吉多認爲是非開放形成的。吉多決心在Python中避免這一錯誤,並獲取了很是好的效果,完美結合了C和其餘一些語言。
python
Python在吉多手中誕生了,第一個實現是在Mac機上。能夠說,Python是從ABC發展起來,主要受到了Modula-3(另外一種至關優美且強大的語言,爲小型團體所設計的)的影響。而且結合了Unix shell和C的習慣。目前吉多仍然是Python的主要開發者,決定整個Python語言的發展方向。Python社區常常稱呼他是仁慈的獨裁者。Python 2.0於2000年10月16日發佈,增長了實現完整的垃圾回收,而且支持Unicode。同時,整個開發過程更加透明,社區對開發進度的影響逐漸擴大。Python 3.0於2008年12月3日發佈,此版不徹底兼容以前的Python源代碼。不過,不少新特性後來也被移植到舊的Python 2.6/2.7版本。Python是徹底面向對象的語言。函數、模塊、數字、字符串都是對象。而且徹底支持繼承、重載、派生、多重繼承,有益於加強源代碼的複用性。Pytho持重載運算符,所以Python也支持泛型設計。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標準庫(functools, itertools)提供了與Haskell和Standard ML中相似的函數式程序設計工具。雖然Python可能被粗略地分類爲「腳本語言」(script language),但實際上一些大規模軟件開發項目例如Zope、Mnet及BitTorrent,Google也普遍地使用它。Python的支持者較喜歡稱它爲一種高級動態編程語言,緣由是「腳本語言」泛指僅做簡單程序設計任務的語言,如shell script、VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。linux
Python自己被設計爲可擴充的。並不是全部的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員可以輕鬆地使用C、C++、Cython來編寫擴充模塊。Python編譯器自己也能夠被集成到其它須要腳本語言的程序內。所以,有不少人把Python做爲一種「膠水語言」(glue language)使用。使用Python將其餘語言編寫的程序進行集成和封裝。在Google內部的不少項目,例如Google App Engine使用C++編寫性能要求極高的部分,而後用Python或Java/Go調用相應的模塊。《Python技術手冊》的做者馬特利(Alex Martelli)說:「這很難講,不過,2004年,Python已在Google內部使用,Google召募許多Python高手,但在這以前就已決定使用Python。他們的目的是儘可能使用Python,在不得已時改用C++;在操控硬件的場合使用C++,在快速開發時候使用Python。」程序員
Web應用程序:web應用程序、服務器後臺應用程序。Python語言能夠開發很是優秀的Web框架,例如:Django\Tornado\Flask\Pyramid等。網絡服務器框架有著名的Twisted,異步通訊eventlet。web
GUI開發:Python提供了很是棒的圖形界面化開發庫文件,比較知名的兩個庫文件包括wxPython或者PyQt等GUI包來開發跨平臺的桌面軟件。shell
科學運算:隨着 NumPy、SciPy、matplotlib、ETS 等衆多程序庫的開發,Python 愈來愈適合於作科學計算。與科學計算領域最流行的商業軟件 MATLAB 相比,Python 是一門真正的通用程序設計語言,比 MATLAB 所採用的腳本語言的應用範圍更普遍,有更多程序庫的支持,適用於 Windows 和 Linux 等多種平臺,徹底免費而且開放源碼。雖然 MATLAB 中的某些高級功能目前還沒法替代,可是對於基礎性、前瞻性的科研工做和應用系統的開發,徹底能夠用 Python 來完成。編程
系統管理工具:可使用python 開發一些平常運維管理工具,例如:流程化自動管理工具、監控報表。使用python開發比較成熟的運維管理工具備SaltStack\Ansible,虛擬化管理工具OpenStack,備份工具Bacula。python是運維管理人員平常工做中助手的不二之選。windows
編程語言主要分爲:編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言。後端
編譯型和解釋型:安全
編譯和彙編語言同樣,對已經寫好的源代碼提早進行轉換,生成可執行機械代碼,源代碼轉換的過程稱爲編譯(Compile),負責編譯源代碼的工具便是編譯器(Compiler)。編譯語言列舉:C/C++、Pascal/Object、Pascal (Delphi)、VB等,編譯型語言(彙編語言)比較適合開發一些運算速度比較快的系統或軟件應用上。
解釋型語言是在程序運行時將程序翻譯成機械語言,在運行速度上稍遜色編譯語言。解釋型語言列舉:Java、JavaScript、VBScript、Perl、Python 等等,解釋型語言比較適合作Web應用程序框架和服務器後端處理程序。
動態語言和靜態語言:
動態類型語言是指在運行期間纔去作數據類型檢查的語言,在動態語言編程時,不用給任何的變量指定數據類型,動態語言會在給變量賦值時記錄數據類型PYthon和Rube都屬於動態語言類型。
靜態類型語言會在編譯過程當中檢查變量的數據類型,程序在編寫的過程當中須要指定全部的變量的數據類型。C/C++、Java是典型的的典型的靜態語言表明。
強類型定義語言和弱類型定義語言:
強類型定義語言若是一旦變量被指定某種數據類型,若是不強制數據類型轉換,那麼此變量類型永遠都是一開始的數據類型。
弱類型定義語言在程序中變量的數據類型是會變化的。
python的優勢:
python的缺點:
python安裝須要在python官方網站上https://www.python.org/downloads/下載windows、linux、MakOS的「python-2.7.11.amd64.msi」和「python-3.5.1-amd64.exe」。現階段python 2版本和3版本正處於過分的階段,在學習的過程當中須要兩個版本的python。
在windows上安裝python:
一、https://www.python.org/downloads下載「python-2.7.11.amd64.msi」和「python-3.5.1-amd64.exe」
二、安裝:
安裝默認路徑:C:\Python27;C:\Python35
三、配置環境變量:
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名
爲Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】請在原來的路徑中使用分號分割變量的設置。更新python的軟件版本,卸載原來版本的python後再安裝新版本python便可。
在linux上安裝python:
查看默認Python版本
python -V
一、安裝gcc,用於編譯Python源碼
yum install gcc
二、下載源碼包,https://www.python.org/ftp/python/
三、解壓並進入源碼文件
四、編譯安裝
./configure
make all
make install
五、查看版本
/usr/local/bin/python2.7 -V
六、修改默認Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
七、防止yum執行異常,修改yum使用的Python版本
vi /usr/bin/yum
將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python
在編寫python語言程序環境中,咱們編寫的每個程序文件都要以.py做爲文件後綴名在python解釋器上去執行。.py是python語言中的標準。
python解釋器的分類:
一、Cpython解釋器:Cpython是C語言開發的解釋器,因此叫Cpython,在命令行下執行的python就是Cpython。
二、Ipython解釋器:Ipython是在Cpython之上發展起來的交互式的解釋器,Cpython使用>>>做爲輸入提示符,Ipython使用I[序號]做爲提示符。
三、pypy解釋器:pypy解釋器執行速度快,採用JIT技術,對python代碼進行動態的編譯。可提升python代碼的執行速度。
四、Jython解釋器:Jython是運行在JAVA平臺上的解釋器,能夠直接把python代碼編譯成java字節碼。
五、IronPython解釋器:IronPython運行在微軟.net平臺上的python解釋器。能夠直接把python代碼編譯成.net的字節碼。
python基本數據類型能夠分爲5種,有整型(int)、浮點型(float)、字符型(string)、布爾型(bool)、空值(None)
常量和變量:
在計算機中,變量就是在程序運行過程當中,臨時保存各類須要變化的數據標示符。在編寫程序時,定義了一個變量後,這個變量會在內存中開闢一塊存儲單元,存儲單元中存儲着變量的數據。 如下變量名和變量值的區別 ,以及變量在程序中狀態:
變量命名規則:
變量名由字母、數字、下劃線組成,變量名的第一個字符不能數字:
合法變量名:abc、a_b_c、a1bc、-abc
不合法變量名:1abc
注意在python語言中是區分字母大小寫,例如sum 和 SUM是兩個不一樣的變臉。
變量的命名習慣:
python語言中變量的命名規則建議用使用如下兩個例子進行命名:
1:CheckCurrentConnCount
2:check_current_conn_count
常量:
常量及是不變量的數據,例如Pi
數據運算符:
在python語言中支持如下運算符:
1:算數運算符
2:比較運算符
3:Assignment Operators
4:二進制運算符
5:關係運算符
6:驗證運算符
1:算數運算符:
2:比較運算符:
3:賦值運算符:
4:按位運算:
5:邏輯運算符:
and、or、not
6:關係運算符:
in、notin
7:驗證運算符:
is 、isnot
字符編碼分爲:ASCII、Unicode、UTF-8,分別使用1個字節、2個字節、3三個字節來表示字符範圍
常見的佔位符:
「%」符號在字符串內部用來格式化字符的,下表爲佔位符的類型。
如下是佔位符的例子:
1 name=input("input you name:") 2 age=int(input("input you age:")) 3 job=input("input you job:") 4 5 msg= ''' 6 information of user %s 7 -------------------- 8 name: %s 9 age: %d 10 job: %s 11 ---------end-------- 12 ''' %(name,name,age,job) 13 14 print (msg)
縮進:
python是強制縮進的語言,它經過縮進肯定一個新的邏輯層次的開始和結束,這也是python語言的最重要的特點之一。同一邏輯層次級別的代碼縮進必須保持一致,頂層邏輯 級別的代碼必須不能有縮進(新行的開始不能有空格)。
在編寫程編寫時,縮進風格應保持一致,通常縮進4到兩個空格。使用tab按鍵,通常建議使用4個空格縮進。
註釋:
在程序編寫過程當中,咱們通常須要使用註釋對某一個功能模塊進行解釋說明,這樣有助於理解程序的功能和執行流程,註釋語言必需要準確、簡潔、易懂。註釋分爲單行註釋和多行註釋。
單行註釋和多行註釋:
單行註釋:#********
多行註釋:
""" 或 '''
** *
** *
""" '''
在python中條件判斷使用如下語法進行條件判斷:
if (條件) :
<執行1>
elif (條件) :
<執行2>
esle:
<執行3>
在條件判斷中,若是if條件成立,則執行1而後條件判斷完成再也不執行下面的條件判斷,若是不成立,則程序向下執行判斷elif的條件是否成立,若是elif條件成立,則執行2完成後程序判斷再也不向下執行,若是elif條件不成立,程序向下執行到else,執行3。
條件判斷案例:
1 age = 22 2 guess_num = int( input("input your guess num:") ) 3 if guess_num == age : 4 print("Congratulations! you got it.") 5 elif guess_num >age: 6 print("Think smaller!") 7 else: 8 print("Think Big...")
循環 (for,while循環)
1 求100之內的奇數和 2 p=0 3 for i in range(100): 4 if (i%2)==1: 5 p+=i 6 print(i) 7 8 求100之內的偶數和 9 p=0 10 for i in range(100): 11 if (i%2)==0: 12 p+=i 13 print(i) 14 15 求100之內的質數和 16 p=0 17 for i in range(1,100): 18 fg =0 19 for j in range(2,int(i/2)): 20 if (i%j==0): 21 fg=1 22 if (fg==0): 23 p +=i 24 print(p)