Python學習系列 【第一篇】:Python 的簡介和入門

 一:Python來源

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

        

 由上圖可見,Python 近年來一直排行使用計算機語言的前五位,也反映出Python應用愈來愈普遍而且也逐漸獲得業內的承認!!!html

 

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

 

 


 

二:爲何是Python而不是其餘語言?

 

C 和 Python、Java、C#等linux

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

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

Python 和 C  Python這門語言是由C開發而來編程

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

Python 和 Java、C#等windows

  對於使用: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 的應用領域

 web 開發:

   Django\pyramid\Tornado\Bottle\Flask\WebPy

  

 網絡編程:

   twisted\Requests\scrapy\paramiko

  

 科學運算:

   Scipy\pandas\lpython

  

 GUI圖形開發

   WXpython\pyqt\kivy

  

 運維自動化:

   openstack\slatstack\ansible\騰訊藍鯨

 

五:運維人員會開發能作些什麼:

 

 1. 幫助公司開發各類自動化工具,定製開發各類開源軟件

 2. 幫助評估和優化業務技術架構

 3.開發公司的內部辦公系統,CRM,網站等

 4. 作個全棧工程師,全棧是指什麼都能作的樣子,本身就能夠完成一個小項目


 

一:Python的安裝

    windows 安裝:  

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

  linux 安裝:

  

無需安裝,原裝Python環境
 
ps:若是自帶2.6,請更新至3.5

 

更新Python

windows 下面 卸載從新安裝便可

 

Linux 下面:

Linux的yum依賴自帶Python,爲防止錯誤,此處更新其實就是再安裝一個Python

 

查看默認Python版本
python -V
 
一、安裝gcc,用於編譯Python源碼
    yum install gcc
二、下載源碼包,https://www.python.org/ftp/python/
三、解壓並進入源碼文件
四、編譯安裝
    ./configure
    make all
    make install
五、查看版本
    /usr/local/bin/python3.5 -V
六、修改默認Python版本
    mv /usr/bin/python /usr/bin/python2.6
    ln -s /usr/local/bin/python3.5 /usr/bin/python
七、防止yum執行異常,修改yum使用的Python版本
    vi /usr/bin/yum
    將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6 

 

 

一:Python的第一程序:

  1.1: windows 下面:

print("hello world!!!")
View Code

 

1.2:Linux 下面:

  ### vim helloworld.py

1   #!/usr/bin/env python
2   print ("hello world!!!!")
View Code

二:Python的變量

   2.1 聲明一個變量

   ###vim name.py

1  #!/usr/bin/env python
2    name = "flyfish"
3    print ("my name is",flyfish)
View Code

   2.2 變量的聲明規則

 

    變量定義的規則:

 

   變量名只能是 字母、數字或下劃線的任意組合

   變量名的第一個字符不能是數字

   如下關鍵字不能聲明爲變量名

   ['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']

 

  ### vim  myname.py 

1     #!/usr/bin/env python
2     # -*- coding: utf-8 -*-
3     # Author:FlyFish
4     name = "flyfish"
5     name2 = name
6     print("my name is",name,name2)
7     name = 'liyang'
8     print("my name is",name,name2)
View Code

 

 

 三: 字符編碼與字符串拼接

  3.1 字符編碼:

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

 

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

     

 

關於中文

 

爲了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體中文的big5。

 

GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

 

GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分爲漢字區和圖形符號區。漢字區包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。如今的PC平臺必須支持GB18030,對嵌入式產品暫不做要求。因此手機、MP3通常只支持GB2312。

 

從ASCII、GB23十二、GBK 到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中老是有相同的編碼,後面的標準支持更多的字符。在這些編碼中,英文和中文能夠統一地處理。區分中文編碼的方法是高字節的最高位不爲0。按照程序員的稱呼,GB23十二、GBK到GB18030都屬於雙字節字符集 (DBCS)。

 

有的中文Windows的缺省內碼仍是GBK,能夠經過GB18030升級包升級到GB18030。不過GB18030相對GBK增長的字符,普通人是很難用到的,一般咱們仍是用GBK指代中文Windows內碼。

 

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

 

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

注:此處說的的是最少2個字節,可能更多

 

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

 

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

 

報錯:ascii碼沒法表示中文

 

 3.2 代碼:

1 #!/usr/bin/env python
2  
3 # -*- coding: utf-8 -*-
4  
5 # Author:FlyFish
6  
7 print("你好,世界!!!!")
View Code

3.3 python 代碼的註釋:

單行注視:# 被註釋內容
多行註釋:""" 被註釋內容 """

3.4 用戶輸入格式化輸出字符串拼接

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:FlyFish
 4 name = input("name:")
 5 age = input("age:")
 6 job = input("job:")
 7 info = '''
 8 ------info of %s -----
 9 name:%s
10 age:%s
11 job:%s
12 ''' % (name,name,age,job)
13 print(info)
View Code
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:FlyFish
 4  
 5 name = input("name:")
 6 age = input("age:")
 7 job = input("job:")
 8 info = '''
 9 ------info of {_name} -----
10 name:{_name}
11 age:{_age}
12 job:{_job}
13 ''' .format(_name=name,
14             _age=age,
15             _job=job
16             )
17 print(info)
View Code
 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:FlyFish
 4 name = input("name:")
 5 age = input("age:")
 6 job = input("job:")
 7 info = '''
 8 ------info of {0}-----
 9 name:{0}
10 age:{1}
11 job:{2}
12 ''' .format(name,
13             age,
14             job
15             )
16 print(info)
View Code

 3.5 Python的用戶輸入:

     Python的輸入 

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:FlyFish
 4 
 5 #import getpass
 6 
 7 _username = "zhangyy"
 8 _password = "abc123"
 9 
10 username = input("username:")
11 password = input("password:")   ### password = getpass.getpass("password:")
12 
13 if _username == username and _password == password:
14    print("Welcom user {name} login".format(name=username))
15 else:
16     print("Invalid username or password ")
View Code

四:if....else 循環:

 在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了

 

 註釋:

  

   外層變量,能夠被內層代碼使用

   內層變量,不該被外層代碼使用

 1 #!/usr/bin/env python
 2 
 3 # -*- coding: utf-8 -*-
 4 
 5 # Author:FlyFish
 6 
 7 age_of_zhangyy = 26
 8 
 9 guess_age = int(input("guess zhangyyy age:"))
10 
11 if guess_age == age_of_zhangyy:
12     print("yes,yo go it")
13 elif guess_age > age_of_zhangyy:
14     print("think smaller...")
15 else:
16     print("think bigger")
View Code

五:while的循環

1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 # Author:FlyFish
4 
5 count = 0
6 
7 while True:
8     print("count",count)
9     count = count + 1
View Code

 5.1 關於猜年齡的遊戲

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # Author:FlyFish
 4 age_of_zhangyy = 26
 5 count = 0
 6 while True:
 7     if count == 3:
 8         break
 9     guess_age = int(input("guess zhangyyy age:"))
10     if guess_age == age_of_zhangyy:
11         print("yes,yo go it")
12         break
13     elif guess_age > age_of_zhangyy:
14           print("think smaller...")
15     else:
16         print("think bigger")
17     count+=1
View Code
 1 #!/usr/bin/env python
 2 
 3 # -*- coding: utf-8 -*-
 4 
 5 # Author:FlyFish
 6 
 7 age_of_zhangyy = 26
 8 count = 0
 9 while count<3:
10 
11     guess_age = int(input("guess zhangyyy age:"))
12 
13     if guess_age == age_of_zhangyy:
14         print("yes,yo go it")
15         break
16     elif guess_age > age_of_zhangyy:
17           print("think smaller...")
18     else:
19         print("think bigger")
20     count+=1
21 
22     if count ==3:
23         countine_confirm = input("do you want to guessing....")
24         if countine_confirm !='n':
25             count ==0
26 
27 else:
28     print("you have tried too many times..fuck off")
View Code
相關文章
相關標籤/搜索