python介紹、安裝及相關語法、python運維、編譯與解釋

1.python介紹 python

  Python英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/)是一種普遍使用的解釋型高級編程通用型編程語言,由吉多、範羅蘇姆創造,初版發佈於1991年。能夠視之爲一種改良(加入一些其餘編程語言的優勢,如面向對象)的lisp。Python的設計哲學強調代碼的可讀性和簡潔的語法(尤爲是使用空格縮進劃分代碼塊,而非使用大括號或者關鍵詞)。相比於C++或Java,Python讓開發者可以用更少的代碼表達想法。無論是小型仍是大型程序,該語言都試圖讓程序的結構清晰明瞭。與Scheme、Ruby、Perl、Tcl等動態類型編程語言同樣,Python擁有動態類型系統垃圾回收功能,可以自動管理內存使用,而且支持多種編程範式,包括面向對象、命令式、函數式和過程式編程。其自己擁有一個巨大而普遍的標準庫。linux

2.python特色android

  優勢c++

    簡單:Python是一種表明簡單主義思想的語言。閱讀一個良好的Python程序就感受像是在讀英語同樣。它使你可以專一於解決問題而不是去搞明白語言自己。程序員

    易學:Python極其容易上手,由於Python有極其簡單的說明文檔  [7]  。
    速度快:Python 的底層是用 C 語言寫的,不少標準庫和第三方庫也都是用 C 寫的,運行速度很是快。  [4] 
    免費、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者能夠自由地發佈這個軟件的拷貝、閱讀它的源代碼、對它作改動、把它的一部分用於新的自由軟件中。FLOSS是基於一個團體分享知識的概念。
    高層語言:用Python語言編寫程序的時候無需考慮諸如如何管理你的程序使用的內存一類的底層細節。
    可移植性:因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工做在不一樣平臺上)。這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基於linux開發的android平臺。
    解釋性:一個用編譯性語言好比C或C++寫的程序能夠從源文件(即C或C++語言)轉換到一個你的計算機使用的語言(二進制代碼,即0和1)。這個過程經過編譯器和不一樣的標記、選項完成。運行程序的時候,鏈接/轉載器軟件把你的程序從硬盤複製到內存中而且運行。而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語言寫的程序不須要編譯成二進制代碼。
     缺點
    單行語句和命令行輸出問題:不少時候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無此限制,能夠較爲方便的在shell下完成簡單程序,不須要如Python同樣,必須將程序寫入一個.py文件。
    獨特的語法:這也許不該該被稱爲侷限,可是它用縮進來區分語句關係的方式仍是給不少初學者帶來了困惑。即使是頗有經驗的Python程序員,也可能陷入陷阱當中。
     運行速度慢:這裏是指與C和C++相比。
3.windows下安裝python相關環境
    python官網:https://www.python.org/
    進入官網,下載對應版本的python。下載好後,雙擊運行。

兩種選擇,第一種系統選擇;第二種自動,將勾選添加環境變量,就後續不用繼續添加。next。正則表達式

而後選擇install安裝。安裝完成後先不要關閉,點擊disable……贊成是。算法

    安裝集成開發環境PyCharmshell

PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系統。PyCharm 功能 : 調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制……數據庫

PyCharm下載地址https://www.jetbrains.com/pycharm/download/#section=windows編程

選擇社區版,進行下載。下載好後,直接運行安裝。

選擇相應的安裝目錄,next

 

finish。雙擊運行。在Complete Installation處選擇Do not import settings,ok。至此安裝完成。

4.linux下開發環境搭建

    上傳並解壓對應版本安裝包:tar xvf Python-3.7.3.tar.xz

    安裝python3

    yum install gcc gcc-c++ make zlib* -y

    yum install libffi-devel -y

    cd 進入解壓後的Python所在的目錄中

    ./configure --prefix=/usr/bin/local/python3

    make && make install

    配置執行文件路徑

    cd /usr/bin

    mv /usr/bin/python /usr/bin/pythonbak

     ln -fs /usr/local/python3/bin/python3 /usr/bin/python3

     修改yum配置

     vim  /usr/bin/yum,在第一行後面的python後加上2

     vim /usr/libexec/urlgrabber-ext-down,同上

5.虛擬環境搭建

     什麼是python虛擬環境?

    通俗的來說,虛擬環境就是從電腦獨立開闢出來的環境,至關於一個副本或備份,在這個環境你能夠安裝私有包,並且不會影響系統中安裝的全局Python解釋器。

   爲何要用虛擬環境?

     在實際項目開發中,咱們一般會根據本身的需求去下載各類相應的框架庫,如Scrapy、Beautiful Soup等,可是可能每一個項目使用的框架庫並不同,或使用框架的版本不同,這樣須要咱們根據需求不斷的更新或卸載相應的庫。直接懟咱們的Python環境操做會讓咱們的開發環境和項目形成不少沒必要要的麻煩,管理也至關混亂。如如下場景:

   場景1:項目A須要某個框架1.0版本,項目B須要這個庫的2.0版本。若是沒有安裝虛擬環境,那麼當你使用這兩個項目時,你就須要來回的卸載安裝了,這樣很容易就給你的項目帶來莫名的錯誤;

   場景2:公司以前的項目須要python2.7環境下運行,而你接手的項目須要在python3環境中運行,想一想就應該知道,若是不使用虛擬環境,這這兩個項目可能沒法同時使用,使用python3則公司以前的項目可能沒法運行,反正則新項目運行有麻煩。而若是虛擬環境能夠分別爲這兩個項目配置不一樣的運行環境,這樣兩個項目就能夠同時運行。

       windows下安裝

   運行cmd,輸入pip install virtualenv。若是版本環境出現問題,嘗試輸入python -m pip install --upgrade pip。出現successful,表示成功。

   新建虛擬環境

   virtualenv scrapytest (沒有報錯,顯示done成功,而後在c盤對應的文件下查看是否建立成功)

   virtualenv -p C:……(此處爲安裝python的位置,包含其啓動執行文件) scrapytest(此爲剛建立的虛擬環境的名字)

   運行爲:cd 進入到以前建立的虛擬環境的目錄下activate.bat,結束爲deactivate.bat

       linux安裝

   yum install python-virtualenv

   virtualenv py2

   virtualenv -p /usr/local/bin/python3 py3

   cd 進入建立的py2

   source activate

   deactivate

 6.基本語法

     控制語句
   if語句,當條件成立時運行語句塊。常常與else, elif(至關於else if) 配合使用。
     for語句,遍歷列表、字符串、字典、集合等 迭代器,依次處理迭代器中的每一個元素。
   while語句,當條件爲真時,循環運行語句塊。
   try語句,與except,finally配合使用處理在程序運行中出現的異常狀況。
   class語句,用於定義 類型
   def語句,用於定義函數和類型的方法。
   pass語句,表示此行爲空,不運行任何操做。
   assert語句,用於程序調試階段時測試運行條件是否知足。
   with語句,Python2.6之後定義的語法,在一個場景中運行語句塊。好比,運行語句塊前加密,而後在語句塊運行退出後解密。
   yield語句,在迭代器函數內使用,用於返回一個元素。自從Python 2.5版本之後。這個語句變成一個運算符。
   raise語句,製造一個錯誤。
   import語句,導入一個模塊或包。
   from import語句,從包導入模塊或從模塊導入某個對象。
   import as語句,將導入的對象賦值給一個變量。
   in語句,判斷一個對象是否在一個字符串/列表/元組裏。
    表達式
   主要的算術運算符與C/C++相似。+, -, *, /, //, **, ~, %分別表示加法或者取正、減法或者取負、乘法、除法、整除、乘方、取補、取餘。>>, <<表示右移和左移。&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用於比較兩個表達式的值,分別表示大於、小於、等於、不等於、小於等於、大於等於。在這些運算符裏面,~, |, ^, &, <<, >>必須應用於整數。
      模塊 
   概念
   python中的模塊是什麼?簡而言之,在python中,一個文件(以「.py」爲後綴名的文件)就叫作一個模塊,每個模塊在python裏都被看作是一個獨立的文件。模塊能夠被項目中的其餘模塊、一些腳本甚至是交互式的解析器所使用,它能夠被其餘程序引用,從而使用該模塊裏的函數等功能,使用Python中的標準庫也是採用這種方法。
    分類

在Python中模塊分爲如下幾種:

   系統內置模塊,例如:sys、time、json模塊等等;

   自定義模塊,自定義模塊是本身寫的模塊,對某段邏輯或某些函數進行封裝後供其餘函數調用。注意:自定義模塊的命名必定不能和系統內置的模塊重名了,不然將不能再導入系統的內置模塊了。例如:自定義了一個sys.py模塊後,再想使用系統的sys模塊是不能使用的;

   第三方的開源模塊:這部分模塊能夠經過pip install進行安裝,有開源的代碼;

   執行過程

   Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),而後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine與Java或.NET的Virtual Machine不一樣的是,Python的Virtual Machine是一種更高級的Virtual Machine。這裏的高級並非一般意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠。或者能夠這麼說,Python的Virtual Machine是一種抽象層次更高的Virtual Machine。基於C的Python編譯出的字節碼文件,一般是.pyc格式。除此以外,Python還能夠以交互模式運行,好比主流操做系統Unix/Linux、Mac、Windows均可以直接在命令模式下直接運行Python交互環境。直接下達操做指令便可實現交互操做。

   編譯與解釋的關係

   首先,咱們編程都是用的高級語言(寫彙編和機器語言的大牛們除外),計算機不能直接理解高級語言,只能理解和運行機器語言,因此必需要把高級語言翻譯成機器語言,計算機才能運行高級語言所編寫的程序。翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不一樣。

   編譯型語言   寫的程序執行以前,須要一個專門的編譯過程,經過編譯系統(不只僅只是經過編譯器,編譯器只是編譯系統的一部分)把高級語言翻譯成機器語言,把源高級程序編譯成爲機器語言文件。之後就能夠直接運行而不須要編譯了,由於翻譯只作了一次,運行時不須要翻譯,因此編譯型語言的程序執行效率高,但也不能一律而論,部分解釋型語言的解釋器經過在運行時動態優化代碼,甚至可以使解釋型語言的性能超過編譯型語言。

   解釋型語言  寫的程序不須要編譯。解釋型語言在運行的時候才翻譯,好比VB語言,在執行的時候,專門有一個解釋器可以將VB語言翻譯成機器語言,每一個語句都是執行的時候才翻譯。這樣解釋型語言每執行一次就要翻譯一次,效率比較低。

   編譯型與解釋型,二者各有利弊 。前者因爲程序執行速度快,同等條件下對系統要求較低,所以像開發操做系統、大型應用程序、數據庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)等都是編譯語言,而一些網頁腳本、服務器腳本及輔助開發接口這樣的對速度要求不高、對不一樣系統平臺間的兼容性有必定要求的程序則一般使用解釋性語言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

相關文章
相關標籤/搜索