python study to 1 基礎篇

 

第一章java

PYthon 簡介

   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。」程序員

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的優勢:

  1. python語言比較精簡,可使用6個詞來形容「優雅」、「明確」、「簡單」,因此python語言在學習和使用方面入門比較容易。
  2. 開發效率高,python有強大的第三方庫,基本上能夠實現計算機上的全部功能,python管方網站模塊能夠直接下載,直接下載調用後,在基礎模塊上進行二次開發,下降了軟件的開發週期,提升了工做效率,避免重複工做。
  3. 高級語言:當使用python語言進行軟件程序開發時,開發者能夠不用考慮底層資源使用時如何協調的。
  4. 可移植性:根據python開源的本質,python能夠移植到許多的平臺上(通常狀況下稍微通過改動後就能夠實如今多平臺上移植),若是在程序開發的過程當中能夠解決某些系統的依賴性,python能夠實如今全部平臺上運行。
  5. 可擴展性:在一些特殊的場景中使用其餘語言代替某一部分功能,能夠把其餘語言添加到python中,而後再使用python去調用其餘語言實現的功能模塊。例如:C/C++。
  6. 可嵌入性:能夠實現把python語言嵌入到C/C++語言中。

    python的缺點:

      1.  運算速度:python運算速度相比C語言和JAVA運行速度較慢,例如:通過測試C語言運行一個程序須要時間爲0.01s秒 ,然而python須要運行時間爲0.1s秒。,這樣C語言的運行速度能夠是python運行速度的10倍。程序的運行速度比快,可是python雖然損色與C語言,可是針對人爲的感知是同樣的。
      2. 代碼不能加密,由於python是解釋性語言且開源,python的源代碼都是以明文形式存在的。若是在開發項目中有要求源代碼是加密的,那麼在程序設計時就不能使用python語言。通常針對於數據安全比較高的軟件部使用python語言。
      3. python是一個單線程的語言,不可以實現多線程。
      4. 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解釋器

     在編寫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數據類型

        python基本數據類型能夠分爲5種,有整型(int)、浮點型(float)、字符型(string)、布爾型(bool)、空值(None)

  1.  整數:在Python中可使用任何大小的整數,整數和數學中的表示方法一致。例如:18。
  2. 浮點型:浮點型的表示方法例如數學中的小數表示方法,浮點型即爲科學計數法表示形式。例如: 1.56e3 =1.56*10^3=1560、0.2e-5=0.000002=0.2*10^-5。
  3. 字符串:「abc」、「I」。
  4. 布爾值:python中的布爾值和布爾代數中的表示形式一致,布爾只有True & Flase。
  5.  空值:python中特殊值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)
View Code

縮進和註釋 :

           縮進:

      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...")
View Code

循環 (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)
使用for循環案例
相關文章
相關標籤/搜索