Python基礎詳解

現階段,掌握一門開發語言已經成爲高級運維工程師的必備技能。學習並掌握一門程序設計語言,可以使我們充分理解企業的業務處理流程,幫助軟件開發人員調試,優化程序,提升應用系統的運行性能。

博文大綱:
一、Python概述
1.Python的語言特點
2.Python語言的應用場景
二、Python的版本與安裝
1.Python繪圖
2.Python的變量
三、Python常用的數據類型
1.數字
2.字符串
3.列表
4.元組
5.字典

一、Python概述

1.Python的語言特點

Python是一種動態解釋型的編程語言。使用C語言開發,但是Python不再有C語言中的指針等複雜數據類型。Python的簡潔性使得軟件的代碼大幅度地建撒謊哦,開發任務進一步簡化。程序員關注的重點不再是語法特性,而是程序所要實現的任務。

Python語言的主要特點:
(1)簡單:Python語言的關鍵字比較少,它沒有分號,代碼使用空格或製表鍵縮進的方式來進行分隔,簡化了循環語句。Python的代碼簡潔、短小、易於閱讀;
(2)易學:Python及其容易上手,因爲Python有極其簡單的說明文檔;
(3)免費、開源:使用者可以自由地發佈這個的軟件的複製,閱讀它的源代碼。對它進行改動,把它的一部分用於新的自由軟件中;
(4)高層語言:無需考慮諸如如何管理內存一類的底層細節;
(5)可移植性:Python已經被移植在許多平臺上(經過改動使它能夠工作在不同的平臺上),這些平臺包括Linux、Windows等;
(6)解釋性:Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;
在計算機內部,Python解釋器把袁大媽轉換成成爲字節碼的中間形式,然後再把它編譯成計算機使用的機器語言並運行。
(7)面向對象:Python既支持面向過程的編程也支持面向對象的編程;
(8)可擴展性:Python是採用C語言開發的,因此可以使用C語言廓鎮Python;
(9)可嵌入性:可以吧Python嵌入C/C++程序,從而使程序面向用戶提供腳本功能;
(10)豐富的庫:Python標準庫很龐大,可以幫助處理各種工作,包括正則表達式、文檔生成、單元測試、線程、數據庫、網頁瀏覽器、CGI、FTP‘電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統、GUI(圖形用戶界面)、T可其他與系統有關的操作;

2.Python語言的應用場景

Python之所以成爲流行的編程語言,與他廣泛的應用場景是分不開的。
(1)系統編程:能方便進行系統維護和管理,是很多Linux系統管理員理想的編程工具;
(2)圖形處理:有PIL、Tkinter等圖形庫支持,能方便進行圖形處理;
(3)數學處理:NumPy擴展提供大量與標準數學庫的接口;
(4)文本處理:Python提供的re模塊能支持正則表達式,還提供SGML、XML分析模塊;
(5)數據庫編程:Python可以操作SQL server、MYSQL、Oracle等數據庫;
(6)網絡編程:提供豐富的模塊,支持sockets編程,能方便快速地開發分佈式應用程序;
(7)Web編程:可以作爲Web應用程序的開發語言;
(8)多媒體應用:Python的PyOpenGL模塊封裝了“OpenGL應用程序編程接口”,能進行二維和三維圖像處理。

二、Python的版本與安裝

目前Python有版本2和版本3這兩個版本,它們之間並不兼容,語法存在差別。許多Python初學者比較糾結,其實無所謂,就看個人興趣愛好。版本之間有差異,也只是語法上有一些區別。總體思路沒有任何變化。本次博文使用Python 2.7.13版本在Windows系統進行操作。

Python的安裝比較簡單,開發工具IDLE也會被同時安裝。用戶可以自行在https://www.python.org/ python官網進行下載,也可以使用本人提供的Python 2.7.13版本軟件包

Python的安裝方法相對簡單,IDLE工具圖形界面可以根據自身的需要進行需要。這裏就不介紹了。

1.Python繪圖

繪圖除了Python語言,別的語言即使可以實現,也是相當麻煩,使用Python就可以很輕鬆的使用。

(1)安裝繪圖模塊

本人提供的軟件包已經包含了繪圖所需的模塊。雙擊安裝即可!如圖:

Python基礎詳解
Python基礎詳解
然後打開CMD命令提示符,執行以下命令:

C:\Users\Administrator>cd C:\six-1.7.3\six-1.7.3
//首先進入six-1.7.3軟件包解壓之後的目錄中
C:\six-1.7.3\six-1.7.3>c:\python27/python setup.py install
//使用Python命令進行安裝

上述安裝完成之後,就可以使用matplotlib模塊進行繪圖操作了。

上述在執行python命令時,使用的是絕對路徑,當然也可加入系統環境變量中。這裏就不多說了!

(2)Python繪圖

打開IDLE工具:
Python基礎詳解
Python基礎詳解
輸入以下代碼

import turtle as tt
from random import randint
tt.TurtleScreen._RUNNING = True
tt.speed(0)  # 繪圖速度爲最快
tt.bgcolor("black")  # 背景色爲黑色
tt.setpos(-25, 25)  # 改變初始位置,這可以讓圖案居中
tt.colormode(255)  # 顏色模式爲真彩色
cnt = 0
while cnt < 500:
    r = randint(0, 255)
    g = randint(0, 255)
    b = randint(0, 255)
    tt.pencolor(r, g, b)  # 畫筆顏色每次隨機
    tt.forward(50 + cnt)
    tt.right(91)
    cnt += 1
tt.done()

即可出現:
Python基礎詳解
動態的出現這種效果圖,這就是Python的強大之處!

2.Python的變量

變量是計算機內存中的一塊區域,變量可以存儲任何指,而且值可以改變;變量名稱可以由字母、數字和下劃線組成。需要注意的是,不能使用Python的關鍵字,英文大小寫字母敏感,第一個字符必須是字母或下劃線,不可以是數字。比如:

>>> lzj_1=1
>>> print(lzj_1)
1
>>> _lzj2=2
>>> print (_lzj2)
2                                                     //正確的賦值方法
>>> #a=1
>>> 3k=1
>>> print=1                                           //錯誤的賦值方法

Python中的變量不需要聲明,變量的賦值操作即是變量聲明和定義的過程,也可以同時給多個變量賦值。比如:

>>> a,b,c=1,2,3
>>> print a,b,c
1 2 3
>>> print a
1

三、Python常用的數據類型

Python內置的數據類型有數字、字符串、元祖、列表和字典。

1.數字

數字類型包括整數、浮點型、布爾型等,聲明時由Python內置的基本數據類型來管理變量,在程序的後臺實現數值與類型的關聯,以及轉換等操作。

(1)整數型和浮點型

>>> aaa=123
>>> print (id(aaa))
13568080
>>> print aaa
123
>>> aaa=1.23
>>> print (id(aaa))
13582176
>>> print aaa
1.23
//雖然變量名稱一樣,但是變量名對應的ID號不一致
//最後一次賦值的變量生效

(2)布爾型

布爾型用於邏輯運算,只有兩個值True、False,表示真和假。

>>> f=True 
>>> print f
True
>>> if(f):
    print 1
1

代碼定義了變量“f=True”,if是判斷語句,爲真則執行“print”語句,最後輸出的是1,說明語句執行成功。

使用比較運算符返回的結果就是布爾值。比如:

>>> 2>3
False
>>> 2>1
True

(3)Python運算符

Python中使用的算術運算符和數學運算中使用的符號基本相同,由+、-、*、/和小括號組成,運算順序也是先乘除後加減,小括號優先。比如:

>>> x,y=10,2
>>> print x+y,x*y,x/y
12 20 5
>>> print 5 + 2 * 10
25
>>> print (5 + 2) * 3
21
>>> print 5 + 8 * 3 / 4
11

還可以實現兩個算術運算符,分別是:“%”(取餘運算)和“**”(求冪運算),比如:

>>> 8%5
3
>>> 2**3
8

注意:Python不支持自增運算符(++)和自減運算符(- -)。

2.字符串

Python中的字符串是一組包含數字、字母和符號的集合,作爲一個整體使用。

(1)字符串使用

在Python中有三種表示字符串的方式:單引號、多引號、三引號。比如:

>>> name='北京'
>>> name1="天津"
>>> name2='''北京和
天津'''
>>> print name
北京
>>> print name1
天津
>>> print name2
北京和
天津

需要注意的是:單引號和雙引號的作用是一樣的,可以根據習慣使用,但定義多行文字時,必須使用三引號。

( 2)使用字符串注意事項

字符串的定義方式單引號、雙引號、三引號大部分情況下作用都是一樣的。但在特殊情況下使用也有所區別,比如:

(1)單引號、雙引號、三引號都是成對出現的,如意單引號開頭就要以單引號結尾, 不能混合使用表示字符串。比如:

>>> name="北京'
SyntaxError: EOL while scanning string literal
>>> name="北京''
SyntaxError: EOL while scanning string literal                     //這都是錯誤的寫法

(2)如果字符串中單獨出現單引號或雙引號,可以使用另一種引號進行定義,比如:

>>> n="let's go!"                //內容中單引號使用雙引號定義
>>> print n
let's go!
>>> n='let"s go!'               //內容中有雙引號使用單引號定義
>>> print n
let"s go!
>>> n='''let's go! let"s go!'''            //內容中單引號、雙引號時使用三引號定義
>>> print n
let's go! let"s go!

(3)當字符串中出現單引號、雙引號等特殊字符是,還可以使用轉義字符定義。Python中的轉義字符還是“\”,只要在特殊字符前面加上“\”,就可以原樣輸出,而不用去管定義字符使用的是單引號還是雙引號。比如:

>>> n='let\' go!'
>>> print n
let' go!
>>> n="let\"s go!"
>>> print n
let"s go!

常用的轉義字符,如圖:

Python基礎詳解

(3)字符串的其他用法

Python的字符串可以進行乘法的操作,可以用一個整數型數字和字符串進行相乘,比如:

>>> print 3*'a'
aaa

Python的字符串乘法非常實用,可以在寫代碼時帶來很大的便利。比如:

>>> a=' '                       
>>> print a

>>> print "python"
python
>>> print a*2 + "python"
  python
>>> print a*4 + "python"
    python

定義了一個空格字符串變量a,在輸出是使用字符串乘法決定輸出的格式,很容易地實現了文字前面的空格,在其他語言中如果想要實現這種效果,代碼要複雜得多,Python的簡潔性體現得十分明顯。

3.列表

列表是Python中非常重要的數據類型,通常作爲函數的返回類型。由一組元素組成,列表可以實現添加、刪除和查找操作,元素值可以被修改。

(1)列表的定義

列表是Python內置的一種數據結構,由中括號定義,元素以逗號分開。語法格式:

列表名 = [ 元素1,元素2,…… ]

(2)列表的取值

(1)列表中的數據是有序的,按定義時的順序拍好,可以單獨取出某一位置元素的數值,語法如下:

列表名 [ 索引位置 ]

如下:

>>> num=['001','002','003']
>>> print num[0]
001
>>> print num [1]
002
>>> print num [2]
003

定義了列表num,存儲了3個字符串。取值時用列表名+中括號,中括號中的數字表示索引位置,需要注意位置是由0開始依次遞增。

(2)可以獲取列表制定範圍的一組元素,語法如下:

列表名[起始位置:終止位置]

可以輸出起始位置到終止位置前的元素,不包括終止位置。比如:

>>> print num [0:1]
['001']
>>> print num [0:2]
['001', '002']
>>> print num [0:3]
['001', '002', '003']

[0:1]表示由索引0開始,索引位置1之前的元素,所以只能取到第1個元素;
[0:2]可以取到索引2之前的元素,即列表中第1、2個元素;
[0:3]可以取到索引2之前的元素,即列表中第1、2、3個元素;
並不顯示終止的值,比如[0:3],只顯示0,1,2這三個數字。

(3)修改列表元素值

可以修改制定位置的列表元素值,語法如下:

列表名[索引位置]=值

比如:

>>> num=['001','002','003']
>>> num [0] = '004'
>>> print num
['004', '002', '003']

定義列表是,索引位置0的元素是001,修改它的值爲004後,索引位置0元素變成了004。

(4)添加列表元素

(1)可以把一個元素添加到列表的最後,語法如下:

列表名.append[元素值]

比如:

>>> num=['001','002','003']
>>> print num
['001', '002', '003']
>>> num.append('004')                         //將004數值添加到列表的末尾
>>> print num
['001', '002', '003', '004']

(2)在列表指定位置前插入新的元素,語法如下:

列表名.insert(索引位置,元素值)

比如:

>>> num=['001','002','003']
>>> num.insert (1,'004')                  //將004數值插入到索引1的位置
>>> print num
['001', '004', '002', '003']

(5)刪除列表元素

可以刪除列表指定索引位置的元素,語法如下:

del 列表名[索引位置]

比如:

>>> num=['001','002','003']
>>> del num[1]                      //刪除位於索引1的數據
>>> print num
['001', '003']

(6)查找列表元素

使用in關鍵字可以查找列表中是否存在指定的數值,語法如下:

元素值 in 列表名

返回的值是布爾類型False或True。

比如:

>>> num=['001','002','003']
>>> '001' in num
True
>>> '004' in num
False

(7)合併列表

多個列表可以使用“+”號進行合併,比如:

>>> num1=['001','002']
>>> num2=['003','004']
>>> numall=num1+num2
>>> print numall
['001', '002', '003', '004']
>>> numall=num2+num1
>>> print numall
['003', '004', '001', '002']

使用加號進行合併時,加號後面的列表元素會追加到前面列表的後面。

(8)重複列表

使用星號可以對列表進行重複操作,與單獨字符串乘法操作相似,比如:

>>> num1=['001','002']
>>> num=num1*5
>>> print num
['001', '002', '001', '002', '001', '002', '001', '002', '001', '002']

(9)列表常見的問題

(1)索引越界是使用列表時經常犯的一個錯誤,如列表中有3個元素,因爲索引位置是0開始計算的,所以最大的索引值是2,如果索引值大於2,則表示索引是越界的,程序無法執行,比如:

>>> num1=['001','002']
>>> print num1[2]

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    print num1[2]
IndexError: list index out of range

那麼但當使用小於0的負數索引時,不會出現錯誤,因爲Python列表的負數索引表示的是由列表的末尾進行反向的取值,也就是最後一個元素的位置也可以使用索引-1取值,以此類推。比如:

>>> num1=['001','002']
>>> print num1[-1]
002

(2)當獲取列表指定範圍的一組元素時,不存在列表索引越界的問題。比如:

>>> num1=['001','002']
>>> num=num1[1:5]
>>> print num
['002']

可以發現正常執行,並報錯,只是將滿足條件的值列出來而已!

(3)獲取列表指定範圍時可以同時使用正數和負數索引。比如:

>>> num=['001','002','003']
>>> print num[0:-1]
['001', '002']

一樣的道理,也是不顯示終止位置的值。

(4)列表元素也可以是列表。比如:

>>> num=[['001','002','003'],['001','002','003'],['001','002','003']]
>>> print num[0]                    //取列表的第0個標籤的值
['001', '002', '003']
>>> print num[0][0]                      //取列表中第0個標籤的第0個值
001
>>> print num [2][1]
002

4.元組

元祖和列表相似,也是Python的一種數據結構,由不同的元素組成,每個元素可以存儲不同類型的數據,比如:字符串、數字、甚至元祖,但是元素是不可以被修改的,即元祖創建後不能進行任何的修改。元祖通常表示一行數據,而元組中的元素表示不同的數據。

(1)元組的創建

元組由關鍵字小括號定義,一旦創建後就不能修改元組的內容,語法如下:

元組名=(元素1,元素2……)

比如:

>>> num=('001','002','003')                //定義元組
>>> num[0] = '004'                   //嘗試修改元組的值時,會報錯

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    num[0] = '004'
TypeError: 'tuple' object does not support item assignment

元組與列表的區別,如圖:
Python基礎詳解

(2)元組的操作

元祖也可對其元素執行一系列的操作。
(1)元組具有不可變性,所以相對列表的操作要少,其中取值操作與列表的方式是完全相同的,如下:

>>> num=('001','002','003')
>>> print num[0]                   //進行查詢
001

(2)元組不允許刪除元組中的元素值,但是可以刪除整個元組。語法:

del 元組名

比如:

>>> num=('001','002','003')
>>> del num[0]                        //試圖刪除元組中某一個元素時,會報錯

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    del num[0]
TypeError: 'tuple' object doesn't support item deletion
>>> print num
('001', '002', '003')
>>> del num                        //刪除整個元組時,不會報錯
>>> print num                      //再次進行查詢時,編譯器會報未定義變量的錯誤

Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    print num
NameError: name 'num' is not defined

(3)元組和列表可以做互相轉換操作:

元組轉換爲列表的語法:

list(列表名)

比如:

>>> num=('001','002','003')                     //定義元組
>>> listnum=list(num)                                  //將元組轉換爲列表
>>> print listnum                           
['001', '002', '003']
>>> listnum[0]='004'                       //修改列表的內容
>>> print listnum
['004', '002', '003']
>>> print type(num)                             //輸出元組類型
<type 'tuple'>
>>> print type(listnum)                      //輸出列表類型
<type 'list'>

列表轉換爲元組的語法如下:

tuple (列表名)

比如:

>>> num=['001','002','003']             //定義列表
>>> tuplenum=tuple(num)                   //將列表轉換爲元組
>>> print type(num)                   //輸出列表類型
<type 'list'>
>>> print type(tuplenum)             //輸出元組類型
<type 'tuple'>

5.字典

字典是Python中重要的數據類型,字典是由”鍵-值“對組成的集合,字典中的值通過鍵來引用。

(1)字典的創建

字典的每個元素是由”鍵-值“對組成的,鍵值之間使用冒號進行分隔,鍵值對之間用逗號進行分隔,並且被包含在一對花括號中,鍵是唯一的,不能存在多個,且它的值是無序的,鍵可以是數字、字符串、元組,一版用字符串作爲鍵。定義的語法如下:

字典名={鍵1:值,鍵2:值,……}

比如:

>>> mobile={'ll':123456,'zz':654321}              //定義字典
>>> print mobile                                            //輸出字典內容
{'ll': 123456, 'zz': 654321}
>>> print type(mobile)                                  //輸出字典的類型
<type 'dict'>

(2)字典的取值操作

字典的取值與元組和列表有所不同,元組和列表都是通過數字索引獲取對應位置的值,而字典是通過鍵獲取對應的值。取值的語法如下:

字典[鍵]

比如:

>>> mobile={'ll':123456,'zz':654321}
>>> print mobile['ll']
123456

需要注意的是,鍵是唯一的,而不同鍵的值卻可以相同,當定義多個鍵相同時,字典之後保留最後一個定義的鍵值對。

(3)字典的添加、修改、刪除操作

(1)字典添加新元素只需要對新鍵進行賦值即可,字典中不存在的鍵,便會自動添加。比如:

>>> mobile={'ll':123456,'zz':654321}
>>> mobile['jj']=987654
>>> print mobile
{'ll': 123456, 'jj': 987654, 'zz': 654321}

(2)修改字典中的元素,直接使用存在的鍵賦值。比如:

>>> mobile={'ll': 123456, 'jj': 987654, 'zz': 654321}
>>> mobile['ll']=321456
>>> print mobile
{'ll': 321456, 'zz': 654321, 'jj': 987654}

(3)刪除字典中的元素,使用del函數。比如:

>>> mobile={'ll': 123456, 'jj': 987654, 'zz': 654321}
>>> del mobile['ll']
>>> print mobile
{'zz': 654321, 'jj': 987654}

(4)字典中常見的問題

字典不可使用“+”運算符執行連續操作。比如:

>>> mobile1={'qq':123,'ww':456}
>>> mobile2={'aa':321,'ss':654}
>>> print mobile1+mobile2

Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    print mobile1+mobile2
TypeError: unsupported operand type(s) for +: 'dict' and 'dict'

(5)字典的應用示例

腳本內容:

kgc={}                                 //接收用戶鍵盤輸入的用戶名和密碼
name='--please input user:'
user=raw_input(name)                //raw_input表示:讀取標準輸入的字符串
pwd=raw_input("password:")
kgc[user] =pwd
print kgc                        //根據用戶名查詢密碼
name = '--user searched:'                        
key=raw_input(name)
print kgc[key]

執行後的效果:

--please input user:lv
password:123
{'lv': '123'}
--user searched:lv
123

———————— 本文至此結束,感謝閱讀 ————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章