python基礎之-數據類型

Python3 數字(Number)

Python 數字數據類型用於存儲數值。php

數據類型是不容許改變的,這就意味着若是改變數字數據類型得值,將從新分配內存空間。html

如下實例在變量賦值時 Number 對象將被建立:python

var1 = 1 var2 = 10

您也可使用del語句刪除一些數字對象的引用。git

del語句的語法是:程序員

del var1[,var2[,var3[....,varN]]]]

您能夠經過使用del語句刪除單個或多個對象的引用,例如:算法

del var del var_a, var_b

Python 支持三種不一樣的數值類型:api

  • 整型(Int) - 一般被稱爲是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,能夠看成 Long 類型使用,因此 Python3 沒有 Python2 的 Long 類型。
  • 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
  • 複數( (complex)) - 複數由實數部分和虛數部分構成,能夠用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

咱們可使用十六進制和八進制來表明整數:數組

>>> number = 0xA0F # 十六進制 >>> number 2575 >>> number=0o37 # 八進制 >>> number 31
int float complex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2-E12 4.53e-7j
  • Python支持複數,複數由實數部分和虛數部分構成,能夠用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。

 


Python 數字類型轉換

有時候,咱們須要對數據內置的類型進行轉換,數據類型的轉換,你只須要將數據類型做爲函數名便可。安全

  • int(x) 將x轉換爲一個整數。數據結構

  • float(x) 將x轉換到一個浮點數。

  • complex(x) 將x轉換到一個複數,實數部分爲 x,虛數部分爲 0。

  • complex(x, y) 將 x 和 y 轉換到一個複數,實數部分爲 x,虛數部分爲 y。x 和 y 是數字表達式。

如下實例將浮點數變量 a 轉換爲整數:

>>> a = 1.0 >>> int(a) 1

Python 數字運算

Python 解釋器能夠做爲一個簡單的計算器,您能夠在解釋器裏輸入一個表達式,它將輸出表達式的值。

表達式的語法很直白: +, -, * 和 / 和其它語言(如Pascal或C)裏同樣。例如:

>>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 # 老是返回一個浮點數 1.6

注意:在不一樣的機器上浮點運算的結果可能會不同。

在整數除法中,除法(/)老是返回一個浮點數,若是隻想獲得整數的結果,丟棄可能的分數部分,可使用運算符 // :

>>> 17 / 3 # 整數除法返回浮點型 5.666666666666667 >>> >>> 17 // 3 # 整數除法返回向下取整後的結果 5 >>> 17 % 3 # %操做符返回除法的餘數 2 >>> 5 * 3 + 2 17

等號(=)用於給變量賦值。賦值以後,除了下一個提示符,解釋器不會顯示任何結果。

>>> width = 20 >>> height = 5*9 >>> width * height 900

Python 可使用 ** 操做來進行冪運算:

>>> 5 ** 2 # 5 的平方 25 >>> 2 ** 7 # 2的7次方 128

變量在使用前必須先"定義"(即賦予變量一個值),不然會出現錯誤:

>>> n # 嘗試訪問一個未定義的變量 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'n' is not defined

不一樣類型的數混合運算時會將整數轉換爲浮點數:

>>> 3 * 3.75 / 1.5 7.5 >>> 7.0 / 2 3.5

在交互模式中,最後被輸出的表達式結果被賦值給變量 。例如:

>>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06

此處, 變量應被用戶視爲只讀變量。

 


數學函數

函數 返回值 ( 描述 )
abs(x) 返回數字的絕對值,如abs(-10) 返回 10
ceil(x) 返回數字的上入整數,如math.ceil(4.1) 返回 5

cmp(x, y)

若是 x < y 返回 -1, 若是 x == y 返回 0, 若是 x > y 返回 1。 Python 3 已廢棄 。使用 使用 (x>y)-(x<y) 替換。
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10爲基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,...) 返回給定參數的最大值,參數能夠爲序列。
min(x1, x2,...) 返回給定參數的最小值,參數能夠爲序列。
modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算後的值。
round(x [,n]) 返回浮點數x的四捨五入值,如給出n值,則表明舍入到小數點後的位數。
sqrt(x) 返回數字x的平方根,數字能夠爲負數,返回類型爲實數,如math.sqrt(4)返回 2+0j

 


隨機數函數

隨機數能夠用於數學,遊戲,安全等領域中,還常常被嵌入到算法中,用以提升算法效率,並提升程序的安全性。

Python包含如下經常使用隨機數函數:

函數 描述
choice(seq) 從序列的元素中隨機挑選一個元素,好比random.choice(range(10)),從0到9中隨機挑選一個整數。
randrange ([start,] stop [,step]) 從指定範圍內,按指定基數遞增的集合中獲取一個隨機數,基數缺省值爲1
random() 隨機生成下一個實數,它在[0,1)範圍內。
seed([x]) 改變隨機數生成器的種子seed。若是你不瞭解其原理,你沒必要特別去設定seed,Python會幫你選擇seed。
shuffle(lst) 將序列的全部元素隨機排序
uniform(x, y) 隨機生成下一個實數,它在[x,y]範圍內。

 


三角函數

Python包括如下三角函數:

函數 描述
acos(x) 返回x的反餘弦弧度值。
asin(x) 返回x的反正弦弧度值。  
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回給定的 X 及 Y 座標值的反正切值。
cos(x) 返回x的弧度的餘弦值。
hypot(x, y) 返回歐幾里德範數 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 將弧度轉換爲角度,如degrees(math.pi/2) , 返回90.0
radians(x) 將角度轉換爲弧度

 


 

Python3 字符串

字符串是 Python 中最經常使用的數據類型。咱們可使用引號('或")來建立字符串。

建立字符串很簡單,只要爲變量分配一個值便可。例如:

var1 = 'Hello World!' var2 = "Runoob"

Python 訪問字符串中的值

Python 不支持單字符類型,單字符也在Python也是做爲一個字符串使用。

Python 訪問子字符串,可使用方括號來截取字符串,以下實例:

實例(Python 3.0+)

#!/usr/bin/python3 var1 = 'Hello World!' var2 = "Runoob" print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5])

以上實例執行結果:

var1[0]: H var2[1:5]: unoo

Python字符串更新

你能夠對已存在的字符串進行修改,並賦值給另外一個變量,以下實例:

實例(Python 3.0+)

#!/usr/bin/python3 var1 = 'Hello World!' print ("已更新字符串 : ", var1[:6] + 'Runoob!')

以上實例執行結果

已更新字符串 : Hello Runoob!

Python轉義字符

在須要在字符中使用特殊字符時,python用反斜槓(\)轉義字符。以下表:

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜槓符號
\' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向製表符
\t 橫向製表符
\r 回車
\f 換頁
\oyy 八進制數,yy表明的字符,例如:\o12表明換行
\xyy 十六進制數,yy表明的字符,例如:\x0a表明換行
\other 其它的字符以普通格式輸出

Python字符串運算符

下表實例變量a值爲字符串 "Hello",b變量值爲 "Python":

操做符 描述 實例
+ 字符串鏈接 a + b 輸出結果: HelloPython
* 重複輸出字符串 a*2 輸出結果:HelloHello
[] 經過索引獲取字符串中字符 a[1] 輸出結果 e
[ : ] 截取字符串中的一部分 a[1:4] 輸出結果ell
in 成員運算符 - 若是字符串中包含給定的字符返回 True H in a 輸出結果 1
not in 成員運算符 - 若是字符串中不包含給定的字符返回 True M not in a 輸出結果 1
r/R 原始字符串 - 原始字符串:全部的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(能夠大小寫)之外,與普通字符串有着幾乎徹底相同的語法。 print r'\n' prints \n 和 print R'\n'prints \n
% 格式字符串 請看下一節內容。

實例(Python 3.0+)

#!/usr/bin/python3 a = "Hello" b = "Python" print("a + b 輸出結果:", a + b) print("a * 2 輸出結果:", a * 2) print("a[1] 輸出結果:", a[1]) print("a[1:4] 輸出結果:", a[1:4]) if( "H" in a) : print("H 在變量 a 中") else : print("H 不在變量 a 中") if( "M" not in a) : print("M 不在變量 a 中") else : print("M 在變量 a 中") print (r'\n') print (R'\n')

以上實例輸出結果爲:

a + b 輸出結果: HelloPython a * 2 輸出結果: HelloHello a[1] 輸出結果: e a[1:4] 輸出結果: ell H 在變量 a  M 不在變量 a  \n \n

Python字符串格式化

Python 支持格式化字符串的輸出 。儘管這樣可能會用到很是複雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用與 C 中 sprintf 函數同樣的語法。

實例(Python 3.0+)

#!/usr/bin/python3 print ("我叫 %s 今年 %d 歲!" % ('小明', 10))

以上實例輸出結果:

我叫 小明 今年 10 歲!

python字符串格式化符號:

<tbody

    符   號 描述
      %c  格式化字符及其ASCII碼
      %s  格式化字符串
      %d  格式化整數
      %u  格式化無符號整型
      %o  格式化無符號八進制數
      %x  格式化無符號十六進制數
      %X  格式化無符號十六進制數(大寫)
      %f  格式化浮點數字,可指定小數點後的精度
      %e  用科學計數法格式化浮點數
      %E  做用同%e,用科學計數法格式化浮點數
      %g  %f和%e的簡寫
      %G  %f 和 %E 的簡寫
      %p  用十六進制數格式化變量的地址

格式化操做符輔助指令:

符號 功能
* 定義寬度或者小數點精度
- 用作左對齊
+ 在正數前面顯示加號( + )
<sp> 在正數前面顯示空格
# 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於用的是'x'仍是'X')
0 顯示的數字前面填充'0'而不是默認的空格
% '%%'輸出一個單一的'%'
(var) 映射變量(字典參數)
m.n. m 是顯示的最小總寬度,n 是小數點後的位數(若是可用的話)

Python2.6 開始,新增了一種格式化字符串的函數 str.format(),它加強了字符串格式化的功能。


Python三引號

python三引號容許一個字符串跨多行,字符串中能夠包含換行符、製表符以及其餘特殊字符。實例以下

實例(Python 3.0+)

#!/usr/bin/python3 para_str = """這是一個多行字符串的實例 多行字符串可使用製表符 TAB ( \t )。 也可使用換行符 [ \n ]。 """ print (para_str)

以上實例執行結果爲:

這是一個多行字符串的實例 多行字符串可使用製表符 TAB ( )。 也可使用換行符 [ ]。

三引號讓程序員從引號和特殊字符串的泥潭裏面解脫出來,自始至終保持一小塊字符串的格式是所謂的WYSIWYG(所見即所得)格式的。

一個典型的用例是,當你須要一塊HTML或者SQL時,這時用字符串組合,特殊字符串轉義將會很是的繁瑣。

errHTML = ''' <HTML><HEAD><TITLE> Friends CGI Demo</TITLE></HEAD> <BODY><H3>ERROR</H3> <B>%s</B><P> <FORM><INPUT TYPE=button VALUE=Back ONCLICK="window.history.back()"></FORM> </BODY></HTML> ''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')

Unicode 字符串

在Python2中,普通字符串是以8位ASCII碼進行存儲的,而Unicode字符串則存儲爲16位unicode字符串,這樣可以表示更多的字符集。使用的語法是在字符串前面加上前綴 u

在Python3中,全部的字符串都是Unicode字符串。


Python 的字符串內建函數

Python 的字符串經常使用內建函數以下:

 

序號 方法及描述
1

capitalize()
將字符串的第一個字符轉換爲大寫

2

center(width, fillchar)


返回一個指定的寬度 width 居中的字符串,fillchar 爲填充的字符,默認爲空格。
3

count(str, beg= 0,end=len(string))


返回 str 在 string 裏面出現的次數,若是 beg 或者 end 指定則返回指定範圍內 str 出現的次數
4

bytes.decode(encoding="utf-8", errors="strict")


Python3 中沒有 decode 方法,但咱們可使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象能夠由 str.encode() 來編碼返回。
5

encode(encoding='UTF-8',errors='strict')


以 encoding 指定的編碼格式編碼字符串,若是出錯默認報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'
6

endswith(suffix, beg=0, end=len(string))
檢查字符串是否以 obj 結束,若是beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,若是是,返回 True,不然返回 False.

7

expandtabs(tabsize=8)


把字符串 string 中的 tab 符號轉爲空格,tab 符號默認的空格數是 8 。
8

find(str, beg=0 end=len(string))


檢測 str 是否包含在字符串中 中,若是 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,若是是返回開始的索引值,不然返回-1
9

index(str, beg=0, end=len(string))


跟find()方法同樣,只不過若是str不在字符串中會報一個異常.
10

isalnum()


若是字符串至少有一個字符而且全部字符都是字母或數字則返 回 True,不然返回 False
11

isalpha()


若是字符串至少有一個字符而且全部字符都是字母則返回 True, 不然返回 False
12

isdigit()


若是字符串只包含數字則返回 True 不然返回 False..
13

islower()


若是字符串中包含至少一個區分大小寫的字符,而且全部這些(區分大小寫的)字符都是小寫,則返回 True,不然返回 False
14

isnumeric()


若是字符串中只包含數字字符,則返回 True,不然返回 False
15

isspace()


若是字符串中只包含空格,則返回 True,不然返回 False.
16

istitle()


若是字符串是標題化的(見 title())則返回 True,不然返回 False
17

isupper()


若是字符串中包含至少一個區分大小寫的字符,而且全部這些(區分大小寫的)字符都是大寫,則返回 True,不然返回 False
18

join(seq)


以指定字符串做爲分隔符,將 seq 中全部的元素(的字符串表示)合併爲一個新的字符串
19

len(string)


返回字符串長度
20

ljust(width[, fillchar])


返回一個原字符串左對齊,並使用 fillchar 填充至長度 width 的新字符串,fillchar 默認爲空格。
21

lower()


轉換字符串中全部大寫字符爲小寫.
22

lstrip()


截掉字符串左邊的空格
23

maketrans()


建立字符映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示須要轉換的字符,第二個參數也是字符串表示轉換的目標。
24

max(str)


返回字符串 str 中最大的字母。
25

min(str)


返回字符串 str 中最小的字母。
26

replace(old, new [, max])


把 將字符串中的 str1 替換成 str2,若是 max 指定,則替換不超過 max 次。
27

rfind(str, beg=0,end=len(string))


相似於 find()函數,不過是從右邊開始查找.
28

rindex( str, beg=0, end=len(string))


相似於 index(),不過是從右邊開始.
29

rjust(width,[, fillchar])


返回一個原字符串右對齊,並使用fillchar(默認空格)填充至長度 width 的新字符串
30

rstrip()


刪除字符串字符串末尾的空格.
31

split(str="", num=string.count(str))


num=string.count(str)) 以 str 爲分隔符截取字符串,若是 num 有指定值,則僅截取 num 個子字符串
32

splitlines([keepends])


按照行('\r', '\r\n', \n')分隔,返回一個包含各行做爲元素的列表,若是參數 keepends 爲 False,不包含換行符,若是爲 True,則保留換行符。
33

startswith(str, beg=0,end=len(string))


檢查字符串是不是以 obj 開頭,是則返回 True,不然返回 False。若是beg 和 end 指定值,則在指定範圍內檢查。
34

strip([chars])


在字符串上執行 lstrip()和 rstrip()
35

swapcase()


將字符串中大寫轉換爲小寫,小寫轉換爲大寫
36

title()


返回"標題化"的字符串,就是說全部單詞都是以大寫開始,其他字母均爲小寫(見 istitle())
37

translate(table, deletechars="")


根據 str 給出的表(包含 256 個字符)轉換 string 的字符, 要過濾掉的字符放到 deletechars 參數中
38

upper()


轉換字符串中的小寫字母爲大寫
39

zfill (width)


返回長度爲 width 的字符串,原字符串右對齊,前面填充0
40

isdecimal()


檢查字符串是否只包含十進制字符,若是是返回 true,不然返回 false。

 

Python3 列表

序列是Python中最基本的數據結構。序列中的每一個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。

Python有6個序列的內置類型,但最多見的是列表和元組。

序列均可以進行的操做包括索引,切片,加,乘,檢查成員。

此外,Python已經內置肯定序列的長度以及肯定最大和最小的元素的方法。

列表是最經常使用的Python數據類型,它能夠做爲一個方括號內的逗號分隔值出現。

列表的數據項不須要具備相同的類型

建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可。以下所示:

list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"];

與字符串的索引同樣,列表索引從0開始。列表能夠進行截取、組合等。


訪問列表中的值

使用下標索引來訪問列表中的值,一樣你也可使用方括號的形式截取字符,以下所示:

實例(Python 3.0+)

#!/usr/bin/python3 list1 = ['Google', 'Runoob', 1997, 2000]; list2 = [1, 2, 3, 4, 5, 6, 7 ]; print ("list1[0]: ", list1[0]) print ("list2[1:5]: ", list2[1:5])

運行實例 »

以上實例輸出結果:

list1[0]: Google list2[1:5]: [2, 3, 4, 5]

更新列表

你能夠對列表的數據項進行修改或更新,你也可使用append()方法來添加列表項,以下所示:

實例(Python 3.0+)

#!/usr/bin/python3 list = ['Google', 'Runoob', 1997, 2000] print ("第三個元素爲 : ", list[2]) list[2] = 2001 print ("更新後的第三個元素爲 : ", list[2])

注意:咱們會在接下來的章節討論append()方法的使用

以上實例輸出結果:

第三個元素爲 : 1997 更新後的第三個元素爲 : 2001

刪除列表元素

可使用 del 語句來刪除列表的的元素,以下實例:

實例(Python 3.0+)

#!/usr/bin/python3 list = ['Google', 'Runoob', 1997, 2000] print (list) del list[2] print ("刪除第三個元素 : ", list) </pre> <p>以上實例輸出結果:</p>

刪除第三個元素 : ['Google', 'Runoob', 2000]

注意:咱們會在接下來的章節討論remove()方法的使用


Python列表腳本操做符

列表對 + 和 * 的操做符與字符串類似。+ 號用於組合列表,* 號用於重複列表。

以下所示:

Python 表達式 結果 描述
len([1, 2, 3]) 3 長度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 組合
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重複
3 in [1, 2, 3] True 元素是否存在於列表中
for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

Python列表截取與拼接

Python的列表截取與字符串操做類型,以下所示:

L=['Google', 'Runoob', 'Taobao']

操做:

Python 表達式 結果 描述
L[2] 'Taobao' 讀取第三個元素
L[-2] 'Runoob' 從右側開始讀取倒數第二個元素: count from the right
L[1:] ['Runoob', 'Taobao'] 輸出從第二個元素開始後的全部元素
>>>L=['Google', 'Runoob', 'Taobao'] >>> L[2] 'Taobao' >>> L[-2] 'Runoob' >>> L[1:] ['Runoob', 'Taobao'] >>>

列表還支持拼接操做:

>>>squares = [1, 4, 9, 16, 25] >>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

嵌套列表

使用嵌套列表即在列表裏建立其它列表,例如:

>>>a = ['a', 'b', 'c'] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [['a', 'b', 'c'], [1, 2, 3]] >>> x[0] ['a', 'b', 'c'] >>> x[0][1] 'b'

Python列表函數&方法

Python包含如下函數:

序號 函數
1 len(list)
列表元素個數
2 max(list)
返回列表元素最大值
3 min(list)
返回列表元素最小值
4 list(seq)
將元組轉換爲列表

Python包含如下方法:

 

序號 方法
1 list.append(obj)
在列表末尾添加新的對象
2 list.count(obj)
統計某個元素在列表中出現的次數
3 list.extend(seq)
在列表末尾一次性追加另外一個序列中的多個值(用新列表擴展原來的列表)
4 list.index(obj)
從列表中找出某個值第一個匹配項的索引位置
5 list.insert(index, obj)
將對象插入列表
6 list.pop(obj=list[-1])
移除列表中的一個元素(默認最後一個元素),而且返回該元素的值
7 list.remove(obj)
移除列表中某個值的第一個匹配項
8 list.reverse()
反向列表中元素
9 list.sort([func])
對原列表進行排序
10 list.clear()
清空列表
11 list.copy()
複製列表

 

 

Python3 元組

Python 的元組與列表相似,不一樣之處在於元組的元素不能修改。

元組使用小括號,列表使用方括號。

元組建立很簡單,只須要在括號中添加元素,並使用逗號隔開便可。

以下實例:

tup1 = ('Google', 'Runoob', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";

建立空元組

tup1 = ();

元組中只包含一個元素時,須要在元素後面添加逗號

tup1 = (50,);

元組與字符串相似,下標索引從0開始,能夠進行截取,組合等。


訪問元組

元組可使用下標索引來訪問元組中的值,以下實例:

#!/usr/bin/python3 tup1 = ('Google', 'Runoob', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7 ) print ("tup1[0]: ", tup1[0]) print ("tup2[1:5]: ", tup2[1:5])

以上實例輸出結果:

tup1[0]: Google tup2[1:5]: (2, 3, 4, 5)

修改元組

元組中的元素值是不容許修改的,但咱們能夠對元組進行鏈接組合,以下實例:

#!/usr/bin/python3 tup1 = (12, 34.56); tup2 = ('abc', 'xyz') # 如下修改元組元素操做是非法的。 # tup1[0] = 100 # 建立一個新的元組 tup3 = tup1 + tup2; print (tup3)

以上實例輸出結果:

(12, 34.56, 'abc', 'xyz')

刪除元組

元組中的元素值是不容許刪除的,但咱們可使用del語句來刪除整個元組,以下實例:

#!/usr/bin/python3 tup = ('Google', 'Runoob', 1997, 2000) print (tup) del tup; print ("刪除後的元組 tup : ") print (tup)

以上實例元組被刪除後,輸出變量會有異常信息,輸出以下所示:

刪除後的元組 tup : Traceback (most recent call last): File "test.py", line 8, in <module> print (tup) NameError: name 'tup' is not defined

元組運算符

與字符串同樣,元組之間可使用 + 號和 * 號進行運算。這就意味着他們能夠組合和複製,運算後會生成一個新的元組。

Python 表達式 結果 描述
len((1, 2, 3)) 3 計算元素個數
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 鏈接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 複製
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print x, 1 2 3 迭代

元組索引,截取

由於元組也是一個序列,因此咱們能夠訪問元組中的指定位置的元素,也能夠截取索引中的一段元素,以下所示:

元組:

L = ('Google', 'Taobao', 'Runoob')
Python 表達式 結果 描述
L[2] 'Runoob!' 讀取第三個元素
L[-2] 'Taobao' 反向讀取;讀取倒數第二個元素
L[1:] ('Taobao', 'Runoob!') 截取元素,從第二個開始後的全部元素。

運行實例以下:

>>> L = ('Google', 'Taobao', 'Runoob') >>> L[2] 'Runoob' >>> L[-2] 'Taobao' >>> L[1:] ('Taobao', 'Runoob')

元組內置函數

Python元組包含了如下內置函數

序號 方法及描述 實例
1 len(tuple)
計算元組元素個數。
>>> tuple1 = ('Google', 'Runoob', 'Taobao') >>> len(tuple1) 3 >>>
2 max(tuple)
返回元組中元素最大值。
>>> tuple2 = ('5', '4', '8') >>> max(tuple2) '8' >>>
3 min(tuple)
返回元組中元素最小值。
>>> tuple2 = ('5', '4', '8') >>> min(tuple2) '4' >>>
4 tuple(seq)
將列表轉換爲元組。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu'] >>> tuple1=tuple(list1) >>> tuple1 ('Google', 'Taobao', 'Runoob', 'Baidu')

 

 

Python3 字典

字典是另外一種可變容器模型,且可存儲任意類型對象。

字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式以下所示:

d = {key1 : value1, key2 : value2 }

鍵必須是惟一的,但值則沒必要。

值能夠取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

一個簡單的字典實例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此建立字典:

dict1 = { 'abc': 456 }; dict2 = { 'abc': 123, 98.6: 37 };

訪問字典裏的值

把相應的鍵放入熟悉的方括弧,以下實例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name']) print ("dict['Age']: ", dict['Age'])

以上實例輸出結果:

dict['Name']: Runoob dict['Age']: 7

若是用字典裏沒有的鍵訪問數據,會輸出錯誤以下:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}; print ("dict['Alice']: ", dict['Alice'])

以上實例輸出結果:

Traceback (most recent call last): File "test.py", line 5, in <module> print ("dict['Alice']: ", dict['Alice']) KeyError: 'Alice'

 


修改字典

向字典添加新內容的方法是增長新的鍵/值對,修改或刪除已有鍵/值對以下實例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict['Age'] = 8; # 更新 Age dict['School'] = "菜鳥教程" # 添加信息 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])

以上實例輸出結果:

dict['Age']: 8 dict['School']: 菜鳥教程

 


刪除字典元素

能刪單一的元素也能清空字典,清空只需一項操做。

顯示刪除一個字典用del命令,以下實例:

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del dict['Name'] # 刪除鍵 'Name' dict.clear() # 刪除字典 del dict # 刪除字典 print ("dict['Age']: ", dict['Age']) print ("dict['School']: ", dict['School'])

但這會引起一個異常,由於用執行 del 操做後字典再也不存在:

Traceback (most recent call last): File "test.py", line 9, in <module> print ("dict['Age']: ", dict['Age']) TypeError: 'type' object is not subscriptable

注:del() 方法後面也會討論。

 

字典鍵的特性

字典值能夠沒有限制地取任何python對象,既能夠是標準的對象,也能夠是用戶定義的,但鍵不行。

兩個重要的點須要記住:

 

1)不容許同一個鍵出現兩次。建立時若是同一個鍵被賦值兩次,後一個值會被記住,以下實例:

 

#!/usr/bin/python3 dict = {'Name': 'Runoob', 'Age': 7, 'Name': '小菜鳥'} print ("dict['Name']: ", dict['Name'])

以上實例輸出結果:

dict['Name']: 小菜鳥

2)鍵必須不可變,因此能夠用數字,字符串或元組充當,而用列表就不行,以下實例:

#!/usr/bin/python3 dict = {['Name']: 'Runoob', 'Age': 7} print ("dict['Name']: ", dict['Name'])

以上實例輸出結果:

Traceback (most recent call last): File "test.py", line 3, in <module> dict = {['Name']: 'Runoob', 'Age': 7} TypeError: unhashable type: 'list'

 


字典內置函數&方法

Python字典包含了如下內置函數:

序號 函數及描述 實例
1 len(dict)
計算字典元素個數,即鍵的總數。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> len(dict) 3
2 str(dict)
輸出字典,以可打印的字符串表示。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> str(dict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
3 type(variable)
返回輸入的變量類型,若是變量是字典就返回字典類型。
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> type(dict) <class 'dict'>

Python字典包含了如下內置方法:

 

序號 函數及描述
1 radiansdict.clear()
刪除字典內全部元素
2 radiansdict.copy()
返回一個字典的淺複製
3 radiansdict.fromkeys()
建立一個新字典,以序列seq中元素作字典的鍵,val爲字典全部鍵對應的初始值
4 radiansdict.get(key, default=None)
返回指定鍵的值,若是值不在字典中返回default值
5 key in dict
若是鍵在字典dict裏返回true,不然返回false
6 radiansdict.items()
以列表返回可遍歷的(鍵, 值) 元組數組
7 radiansdict.keys()
以列表返回一個字典全部的鍵
8 radiansdict.setdefault(key, default=None)
和get()相似, 但若是鍵不存在於字典中,將會添加鍵並將值設爲default
9 radiansdict.update(dict2)
把字典dict2的鍵/值對更新到dict裏
10 radiansdict.values()
以列表返回字典中的全部值
11 pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值。
12 popitem()隨機返回並刪除字典中的一對鍵和值。
相關文章
相關標籤/搜索