Python開發:初識Python

Python簡介

  • Python前世此生

 

python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。  python

 

最新的TIOBE排行榜,Python趕超PHP佔據第五!!!linux

 

由上圖可見,Python總體呈上升趨勢,反映出Python應用愈來愈普遍而且也逐漸獲得業內的承認!!!程序員

Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。互聯網公司普遍使用Python來作的事通常有:自動化運維自動化測試大數據分析、爬蟲、Web 等。shell

注視:上述重點字體表示該公司主要使用Python語言開發windows

爲何是Python而不是其餘語言?網絡

C 和 Python、Java、C#等運維

    C語言: 代碼編譯獲得 機器碼 ,機器碼在處理器上直接執行,每一條指令控制CPU工做測試

其餘語言: 代碼編譯獲得 字節碼 ,虛擬機執行字節碼並轉換成機器碼再後在處理器上執行字體

Python 和 C  Python這門語言是由C開發而來大數據

  對於使用:Python的類庫齊全而且使用簡潔,若是要實現一樣的功能,Python 10行代碼能夠解決,C可能就須要100行甚至更多.
  對於速度:Python的運行速度相較與C,絕逼是慢了

Python 和 Java、C#等

  對於使用:Linux原裝Python,其餘語言沒有;以上幾門語言都有很是豐富的類庫支持
  對於速度:Python在速度上可能稍顯遜色

因此,Python和其餘語言沒有什麼本質區別,其餘區別在於:擅長某領域、人才豐富、先入爲主。

  • Python的種類
  • Cpython
        Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。
  • Jyhton
        Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行。
  • IronPython
        Python的C#實現,IronPython將Python代碼編譯成C#字節碼,而後在CLR上運行。(與Jython相似)
  • PyPy(特殊)
        Python實現的Python,將Python的字節碼字節碼再編譯成機器碼。
  • RubyPython、Brython ...

以上除PyPy以外,其餘的Python的對應關係和執行流程以下:

 

PyPy,在Python的基礎上對Python的字節碼進一步處理,從而提高執行速度!

  • Python環境

windows:

1
2
3
4
5
6
7
1 、下載安裝包
     https: / / www.python.org / downloads /
2 、安裝
     默認安裝路徑:C:\python27
3 、配置環境變量
     【右鍵計算機】 - - 》【屬性】 - - 》【高級系統設置】 - - 》【高級】 - - 》【環境變量】 - - 》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 - - > 【Python安裝目錄追加到變值值中,用 ; 分割】
     如:原來的值;C:\python27,切記前面有分號

linux:

       1. 無需安裝,自帶python環境

        2.自帶爲2.6版本,須要升級2.7,在安裝3版本

  • 更新Python

                windows:  

           卸載重裝便可
                 linux:
   Linux的yum依賴自帶Python,爲防止錯誤,此處更新其實就是再安裝一個Python
   
查看默認Python版本
python - V
  
1 、安裝gcc,用於編譯Python源碼
     yum install gcc
2 、下載源碼包,https: / / www.python.org / ftp / python /
3 、解壓並進入源碼文件
4 、編譯安裝
     . / configure
     make all
     make install
5 、查看版本
     / usr / local / bin / python2. 7 - V
6 、修改默認Python版本
     mv / usr / bin / python / usr / bin / python2. 6
     ln - s / usr / local / bin / python2. 7 / usr / bin / python
7 、防止yum執行異常,修改yum使用的Python版本
     vi / usr / bin / yum
     將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
 
  • Python 入門

         1、第一句Python代碼   

在 /home/dev/ 目錄下建立 hello.py 文件,內容以下:

  print "hello,word"

執行 hello.py 文件,即: python /home/dev/hello.py

python內部執行過程以下:

2、解釋器

上一步中執行 python /home/dev/hello.py 時,明確的指出 hello.py 腳本由 python 解釋器來執行。

若是想要相似於執行shell腳本同樣執行python腳本,例: ./hello.py ,那麼就須要在 hello.py 文件的頭部指定解釋器,以下:

 #!/usr/bin/env python

print "hello world"

如此一來,執行: ./hello.py 便可。

ps:執行前需給予 hello.py 執行權限,chmod 755 hello.py

3、內容編碼

python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256 個符號。

顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode

Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多

UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...

因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:
報錯:ascii碼沒法表示中文

  #!/usr/bin/env python

  print "你好,世界"

改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:

  #!/usr/bin/env python

  #_*_ coding: utf-8 _*_

  print "你好,世界"

4、註釋

  當行注視:# 被註釋內容

  多行註釋:""" 被註釋內容 """

5、執行腳本傳入參數

Python有大量的模塊,從而使得開發Python程序很是簡潔。類庫有包括三中:

  • Python內部提供的模塊
  • 業內開源的模塊
  • 程序員本身開發的模塊

Python內部提供一個 sys 的模塊,其中的 sys.argv 用來捕獲執行執行python腳本時傳入的參數

   #!/usr/bin/env python

  #_*_ coding: utf-8 _*_

  import sys

  print sys.argv

6、 pyc 文件

執行Python代碼時,若是導入了其餘的 .py 文件,那麼,執行過程當中會自動生成一個與其同名的 .pyc 文件,該文件就是Python解釋器編譯以後產生的字節碼。

ps:代碼通過編譯能夠產生字節碼;字節碼經過反編譯也能夠獲得代碼。

7、變量

一、聲明變量

   #!/usr/bin/env python

  #_*_ coding: utf-8 _*_

  name = "chenlisong"

上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"chenlisong"

變量的做用:暱稱,其代指內存裏某個地址中保存的內容

變量定義的規則:

  • 變量名只能是 字母、數字或下劃線的任意組合
  • 變量名的第一個字符不能是數字
  • 如下關鍵字不能聲明爲變量名
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

二、變量的賦值

  #!/usr/bin/env python

  #_*_ coding: utf-8 _*_

   name 1 = "chenlisong"

   name2 = "chenyong"

8、輸入

#!/usr/bin/env python

  #_*_ coding: utf-8 _*_

# 將用戶輸入的內容賦值給name變量

name = print("請輸入用戶名")‘’

#打印輸入的內容

print name

輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:

#!/usr/bin/env python

  #_*_ coding: utf-8 _*_

import getpass

#將用戶輸入的內容賦值給 name 變量

pwd = getpass.getpass("請輸入密碼: ")

# 打印輸入的內容

print pwd

9、流程控制和縮進

需求1、用戶登錄驗證

!/usr/bin/env python

# -*- coding: encoding -*-
  
# 提示輸入用戶名和密碼
  
# 驗證用戶名和密碼
#     若是錯誤,則輸出用戶名或密碼錯誤
#     若是成功,則輸出 歡迎,XXX!
 
 
import getpass
  
  
name = raw_input ( '請輸入用戶名:' )
pwd = getpass.getpass( '請輸入密碼:' )
  
if name = = "alex" and pwd = = "cmd" :
     print "歡迎,alex!"
else :
     print "用戶名和密碼錯誤"
 
需求2、根據用戶輸入內容輸出其權限
 
# 根據用戶輸入內容打印其權限
  
# alex --> 超級管理員
# eric --> 普通管理員
# tony,rain --> 業務主管
# 其餘 --> 普通用戶
if name = = "alex"
     print "超級管理員"
elif name = = "eric" :
     print "普通管理員"
elif name = = "tony" or name = = "rain" :
     print "業務主管"
else :
     print "普通用戶"
name = input ( '請輸入用戶名:' )

10、while循環

一、基本循環

while 條件:
     
     # 循環體
 
     # 若是條件爲真,那麼循環體則執行
     # 若是條件爲假,那麼循環體不執行

二、break

break用於退出全部循環

while True :
     print "123"
     break
     print "456"

三、continue

continue用於退出當前循環,繼續下一次循環

while True :
     print "123"
     continue
     print "456"
相關文章
相關標籤/搜索