Python 第一篇:python簡介和入門

1、python簡介java

一、python下載地址:https://www.python.org/downloads/node

Python的創始人爲Guido van Rossum。1989年聖誕節期間,在阿姆斯特丹,Guido爲了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,作爲ABC 語言的一種繼承。之因此選中Python(大蟒蛇的意思)做爲程序的名字,是由於他是一個叫Monty Python的喜劇團體的愛好者。python

二、Python排行和使用場景:linux

    python在從2014年的排名第八升級爲2015年的排名第5:vim

wKioL1aPaFWAT1McAAFU5d5OZio705.png

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

三、Python種類:bash

Jyhton Python的Java實現,Jython會將Python代碼動態編譯成Java字節碼,而後在JVM上運行轉換後的程序網絡

#jpython在執行的時候先通過詞法分析,語法分析,而後由解釋器編譯成字節碼,再有java編譯成機器碼,最後再有CPU讀取機器碼執行,而pypy則有解釋器直接一步到位編譯成機器碼,所以pypy理論上速度更快。運維

Cpython Python的官方版本,使用C語言實現,使用最爲普遍,CPython實現會將源文件(py文件)轉換成字節碼文件(pyc文件),而後運行在Python虛擬機上。python2.7

IronPython  Python的C#實現,而且它將Python代碼編譯成C#中間代碼(與Jython相似)

PyPy  Python實現的Python

其餘實現方式:RubyPython、Brython、Pyobjc .

四、python安裝:

Linux安裝:

linux默認自帶python,可是centos和redhat的版本廣泛比官方版本低不少,所以能夠另外安裝一個版本使用,步驟

以下:

 1  1、先安裝gcc編譯器,命令爲:
 2  yum install gcc
 3  2、解壓Python安裝包並編譯安裝,注意P爲大寫:
 4  tar xvf Python-2.7.10.tgz 
 5  cd Python-2.7.10
 6  ./configure
 7  make
 8  make install
 9  3、查看版本:
10  Python 2.7.10 (default, Jul 18 2015, 04:12:23) 
11 [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
12 Type "help", "copyright", "credits" or "license" for more information.
13 dlopen("/usr/local/python27/lib/python2.7/lib-dynload/readline.so", 2);
14 四、設置軟鏈接: #不建議更改默認python版本,由於會出現系統錯誤,如yum是python寫的,會致使yum沒法使用
15 ln -sv /usr/local/python27/bin/python /usr/local/bin/python27
16 5、測試python:
17 [root@node5 Python-2.7.10]# python27 
18 Python 2.7.10 (default, Jul 18 2015, 04:12:23) 
19 [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
20 Type "help", "copyright", "credits" or "license" for more information.
21 >>> print "Hello,你好"
22 Hello,你好
View Code

二:使用python:

一、使用vim編寫一個腳本,內容以下:

1 #!/usr/local/bin/python27
2 print  "hello word!"
View Code

執行腳本:

[root@node5 python]# python hello.py 

hello word! #執行結果

二、python內部執行流程:

pyhton程序先交給解釋器,而後通過詞法分析-->語法分析-->編譯-->執行

wKiom1aPcT6SL8LMAACV9ioIjCU679.jpg

 

3、python編碼:

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

wKiom1aPd2OjM2bPAA9HbltcMuk825.png

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

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

由於python默認的編碼是採用的ASCII,因此在python直接輸出中文會由於使用ASCII編碼不支持中文而報錯,如:

1 #!/usr/bin/python27
2 #coding:utf-8 #聲明使用utg-8編碼
3 print "你好"
4 
5 #此問題在python 3以後的版本不須要設置,由於python3默認編碼即爲utf-8
View Code

四、編碼間的轉換:

將utf-8或gbk格式的轉換爲unicode稱爲decode,將unicode轉換爲其餘編碼稱爲encode

decode的做用是將其餘編碼的字符串轉換成unicode編碼

encode的做用是將unicode編碼轉換成其餘編碼的字符串

wKioL1aQncfhPP1CAAEb6LE_Yck795.png

 

:註釋與幫助文檔:

單行註釋: #註釋內容,如:

print "你好" #第一個註釋

誇多行註釋: '''內容'''或""" 內容""",在python裏單引號和雙引號是沒有區別的,如:

1 #!/usr/bin/python27
2 #coding:utf-8 
3 """ 第一
4 個註釋 """
5 print "你好"
View Code

5、 pyc 文件

    執行Python代碼時,若是導入了其餘的模塊即其餘的xx.py文件,那麼,執行過程當中會自動生成一個與其同名的和py文件同名的.pyc 文件,該文件就是Python解釋器編譯以後產生的字節碼,代碼通過編譯能夠產生字節碼;字節碼經過反編譯也能夠獲得代碼,即便刪除該py文件以後python程序依然能夠運行,由於python或優先讀取pyc文件,可是假如手動修改了pyc文件,則python會從新讀取py文件並從新生成新的pyc文件,由於python會內部判斷,所以不須要也不能手動更改pyc文件。

六:python變量:

變量名稱表明了內存中的某一段空間,空間裏面保存的是變量的對象,變量能夠是任何數值,可是變量的名稱只能是數字、大小寫字母和下劃線,並且變量名的第一個字符不能是數字開頭的,變量名不要使用和系統已經使用的特殊關鍵字

不能做爲的名字的關鍵字以下:

 

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

一、聲明變量:

name = "zhangshijie"

print name

二、變量的賦值:

a = "jack"
b = "tom"

其結果是在內存開啓了兩個地址空間,a和b分別表示這兩個地址空間的內容。

wKiom1aPfzWyyQ5SAAAVxbPeg8Q233.png 

a = "jack"
b = a
如下會開啓一個地址空間,兩個變量名將指向同一個內存地址進行調用:

wKioL1aPgBSAlWgHAAAXyB_a92s595.png

七:獲取用戶輸入:

一、使用raw_input的方法獲取用戶輸入的字符串信息給一個變量,而後把變量打印出來,還有另一種方法input只能獲取數值:

1 #/usr/bin/env  python
2 # -*- coding:utf-8 -*-
3 name = raw_input("Please input yout name:")  #在python2中raw_input獲取的爲字串,inpu獲取爲數值
4 print "your name is:",name
5 
6 在python3中,沒有了raw_input,只有input方法,默然獲取到的爲字串,若是要獲取數值,能夠加上int(input("請輸入你想要輸入的數字或內容:"))
View Code

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

 1 #/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 import  getpass
 4 password = getpass.getpass("請輸入你的密碼")
 5 
 6 print password
 7 注:密碼是隱藏的,並且運行的時候連輸入密碼的提示框都沒有,能夠在調試模式下看到詳細的內容,以下:
 8 Warning: Password input may be echoed.
 9 請輸入你的密碼qqqqqqqq
10 qqqqqqqq
View Code

八:python流程控和縮進:

一、if else語句流程控制,進行判斷用戶輸入,非A即B,python對縮進要求很嚴格,必須嚴格按照4個空格的方式進行排序,並且if下一級的代碼必須與if保持4個空格換行間距,,即父代碼要與子代碼嚴格區分,若是縮進不符合要求會報縮進錯誤: IndentationError: unindent does not match any outer indentation level

 1 #/usr/bin/env  python
 2 # -*- coding:utf-8 -*-
 3 
 4 import getpass
 5 
 6 name = raw_input('請輸入你的用戶名:')
 7 pwd = getpass.getpass('請輸入你的密碼:')
 8 
 9 if name == "jack" and pwd == "123abc":
10     print "歡迎,jack!"
11 else:
12     print "你的用戶名和密碼錯誤"
13 二、if elif elif elif ...else: # 有N個判斷條件,一次匹配一個條件,以下:
14 name = raw_input("請輸入你的用戶名:")
15 if name == "jack":
16     print "jack"
17 elif name == "tom":
18     print "tom"
19 elif name == "lili":
20     print "lili"
21 elif name == "wangwu":
22     print "wangwu"
23 else:
24     print "用戶名不正確"
View Code

八:python傳遞參數:

使用python標準庫sys模塊中的argv方法獲取用戶傳遞的全部參數,以列表的形式展示用戶傳遞的參數(在使用運行python程序的時候傳遞的參數,如python  xx.py  server1 192.168.0.1,則第0個參數是腳本自己,第一個參數是server1,第二個參數是192.168.0.1,以此類推),以下:

1 [root@node5 python]# vim argv.py 
2   #!/usr/bin/python
3   import sys
4   print sys.argv
5   print sys.argv[1] #讀輸出的列表進行分割,取第二個傳遞的參數是什麼
6 [root@node5 python]# python argv.py  server1 192.168.0.1 #運行腳本傳遞參數
7 ['argv.py', 'server1', '192.168.0.1']  #打印傳遞的全部參數
8 server1  #第二個參數
View Code
相關文章
相關標籤/搜索