第二章 python資料類型

黄舟
發布: 2016-12-22 17:04:14
原創
1193 人瀏覽過

第一節    數字和字串類型 

123和「123」一樣嗎

() [] {} 

電腦是用來輔助人們的,在程式設計中也映射了現實世界的分類,以便於抽象的分析。

數字 

字串 

列表 

元組 


> >> num1=123 

>>> type(123) 

 

>>> type(num1) 
 

>>> num2=9999999999999999999999999999999999

>>> num='hello'


>>>示例如上面所示。


>>> num3=123L        這裡我們是以長整數來賦值的 
>>>> type(num3) 
 


>>> num=0.0 

>>> type(num) 

 
>>> num=12 
>>> type(num) 

 

>>

Python對複數提供內嵌支持,這是其他大部分軟體所沒有的: 


複數舉例:3.14j,8.32e-36j 


範例: 

>
>
. >> type(num) 
 

>>> num 

3.14j 
>>> print num 


3.14j 

> a=123 
>>> stra="123" 
>>> print a 
123 
>>> print stra 
123 
>>> a+stra  
Traceback (most recent call last): 
  File "", line 1, in  
TypeError: unsupported operand type(s) for +: 'int' and 'str' 

>>> 

>
>>> type(stra) 

 


字串String 


使用引號定義的一組可以包含數字,字母,符號(非特殊系統符號)的集合。



>>> str1='hello world' 


>>> str2="hello world"

>>> say='let's go'   這樣還包含在這裡包含的錯誤,因為   一個單引號 

  File "", line 1 
    say='let's go' 

             ^ 

Syn         ^        我們將外面的單引號改為雙引號即可 

>>> say="let's "go""        如果我們的雙引號裡面還有雙引號,我們就要使用轉義字了 

  File "", line 1       ^ 

SyntaxError: invalid syntax 
>>> say="let's "go"" 
>>> print say 


let's "go" 


. tom: hello i am jack' 
>>> print mail 
tom: hello i am jack 
>>> mail='tom:n hellon i am jack'      > mail 
'tom:n hellon i am jack' 
>>> print mail 
tom: 
 hello 

 i am jack 

下面我們使用三重引號實現換行的效果: 

>>> mail="""tom: 
...    >> print mail 
tom: 
    i am jack 
    goodbye 

>>> mail       


另外我們在程式碼中也可以用三重引號取註解某一行,也可以使用他做doc資料 

透過索引取值 


>>>> a='abcde'


>>> a[0]  透過索引來取字串裡面的某個值

'a' 

>>> a[1] 

'b' 

>>> a[0]+a[1]        如果我們想要取多個在中間中間可以使用+號做連接 



'ab' 

使用切片進行取值 


>>>> a 


'abcde' 



'abcde' 

+1:步長] 

>>> a[1:4]        這裡我們取bcd,並使用[開始位置:結束位置+1]來取值

'bcd' 

>> a[ 4]        這表示從頭開始到d切割

'abcd' 


>>> a[4:]       2:] 


'cde' 


>>> a[::1]        步長取值,以下步長為2的時候更為清晰 

'abcde' > ] 

'ace' 

>>> a[-4:-1]  透過負數索引取值,這裡我們開始的時候從是從後向前的,-1代表倒數第二個值 

'bcd' 


>>> a[:-1]        從倒數最後一個值切斷,然後顯示前面的值 


'abcd' 


下面取值>>> a[-2:-4:-1]            他是從將所有的數先反過來,然後再進行從第二個位置開始切斷取值到'dc' 第三個位置 

>>> a [-4:-2:1]              他表示在倒數第二個位置切斷 


'bc' 



'bc' 


>> a倒過來取值 


'dcb' 


 

第二節    序列 


a.列表、元組和字串都是切片操作符。 


    ——索引運算子讓我們可以從序列中擷取一個特定項目。 


    -切片運算子讓我們可以取得序列的一個切片,也就是一部分序列。 

c.索引同樣可以是負數,位置是從序列尾開始計算的。

    ——因此,shoplist[-1]表示序列的最後一個元素而shoplist[-2]抓取序列的倒數第二個項目 


d.切片運算元是序列名後跟一個方括號,方括號中有一對可選的數字,並用冒號分割。 


    ——注意這與你使用的索引運算符十分相似。記住數是可選的,而冒號是必須的。 


    -切片運算子中的第一個數字(冒號之前)表示開始的位置,第二個數字(冒號之後)表示切片到哪裡結束。如果不指定第一個數,Python就從序列首開始。如果沒有指定第二個數,則Python會停止在序列尾。 


    ——注意:返回的序列從開始位置開始,剛好在結束位置之前結束。即開始位置是包含在序列切片中的,而結束位置則排斥在切片外。 

    a.shoplist[1:3]返回從位置1開始,包括位置2,但是停止在位置3的一個序列切片,因此返回一個含有兩個項目的切片。 shoplist[:]傳回整個序列的拷貝。你可以用負數做切片。負數用在從序列尾開始計算的位置。例如,shoplist[:-1]會傳回除了最後一個項目外包含所有項目的序列切片。


序列的基本操作 

    1.len():                    連結2個序列 

    3.*:             判斷元素是否在序列中 

    5.max():          傳回最大的值 

      7.cmp(tuplel,tuple2)    比較2個的序列值是否相同 

下面我們來操作: 

>>> a 

'abcde' 
>>> len(a) 

>>> str1='123'>

>>> str1='123'>

>> str1+str2 


'123adbs' 


>>> str1*5       
1就會重複五次

'12312312312str1就會重複五次

'12312312312str1就會被重複五次

'12312312312 # ##################################' 

>>> str2 

'adbs' 



>>> 'c' in str2        檢視'c'這個字元是否在str2這個字串中不在回傳False,在回傳True

False 
>>> 'a' in str2 

True 

>>> 'c' not in str2 
True 
>>> max(str1) 
'3' 

>>> max(str2) ' 

cmp(str1,str2)用於兩個字串的比較 

>>> str1='12345' 
>>> str2='abcde' 
>> -1 


>>> str2='123' 

>>> cmp(str1,str2) 


>>> str2='12345'   

>>> str2='12345'   cmp(str1,str2)         




第三節    元組() 

的元組化

第三節 



    ——元組透過圓括號中以逗號分割的項目定義。 


    ——元組通常用在使語句或使用者定義的函數能夠安全地採用一組值的時候,即被使用的元組的值不會改變。

>>> str2='12345' 
>>> id(str2) 

139702043552192 

>>> str2='123456666'p 43552576 

下面我們開始元組的操作 

首先我們可以看看透過切片出來的姓名,會在長度不同的情況下有空格顯示,這樣我們從裡面取元素是比較困難的 

>>> userinfo="milo 30 male" 

>>> userinfo[:4] 
'milo' 

>>> userinfo1="zou 25 famale" 

>>> userinfo1[:4] 
'zou ' 
>>> t=("milo",30," male")   這裡如果我們使用元組這種定義方式,在取值的時候就會方便很多 
>>> t[0] 
'milo' >> t [2] 

'male' 


創建元組 
    ——一個空元組由一對一的圓括號組成 
        a.如myempty = ()        a.如myempty = ()       ,) 
——一般的元組 
        a.zoo = ('wolf','elephant','penguin') 


      >>> t=()            定義一個空元組 

>>> t1=(2,)        定義一個只有一個元素的元組,這裡要特別注意,那個逗號type(t1) 

 


元組操作 


    -元組和字串型一樣屬於序列型, >>> t=('milo',30,'male') 
>>> t 
('milo', 30, 'male') 

>>> t[1] 

30 
>>> t[11 ]=31        這裡我們在視圖改變年齡的時候發現報錯 

Traceback (most recent call last): 

  File "", line 1, in  
TypeError: 'tuple' obect 5s

('milo', 30, 'male') 

 

>>> name,age,gender=t 

>>>> name 
'milo' male' 


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


>>> a,b,c=(1,2,3)        可以定義元組中這兩種方法都可以定義元組,但是我們盡量使用第二種方法 



第四節    序列-元組 

列表[] 



1)

列表[] 


1)是處理一組有序項目中的資料結構,即你可以在一個結構,即你可以處理一組有序項目清單中儲存一個序列的項目。 


2)列表是可變類型的資料 


3)列表的組成:以[]表示列表,包含了多個以逗號分隔開的數字,或字串。


    ——List1=['Simon','David','Clotho','張三'] 


    ——List2=[1,2,3,4,5] 

["str1","str2","str3","str4","str5"] 


>>> listmilo=[]        空白清單的定義 

>>> type(listmiloat)> ['milo',30,'male']        一般清單的定義 
>>> t=('milo',30,'male') 

>>> t[0] 

'milo' 
>> list 0] 

'milo' 

>>> listmilo[0:2]        從清單中取值 
['milo', 30] 

>>> t[0:2] mimi

>

有差別的在下面 


>>> t3=('abc') 

>>> l3=['abc'] 

>>> type(l3)   >>> type(t3) 
 


列表操作 


    ——取值 


    


    ——新增 

        a.list.append () 


    ——刪除 

        a.del(list[]) 

修改 


        a.list[]=x 

    -找出 

        a.var in list 

>>> listmilo[0]      收到
下面我們介紹如何在清單中加入一個元素 


>>>> listmilo 
['milo', 30, 'male'] 

>>> listmilo.append("123444555")

['milo', 30, 'male', '123444555']        這時我們發現listmilo列表中已經新增了第四個元素 

>>> listmilo 
['milo', 30, 'male'] 


>>>> del(listmilo[1])       listmilo 

['milo', 'male'] 


要學會使用help查詢一些語法的使用,例如我們需要查看清單的內部的刪除操作 



>> Help on method_descriptor: 

remove(...) 

    L.remove(value) -- remove first occurrence of value. 

  > help(len )            以如此查看一些內部函數的使用操作 




物件與類快速入門 


1)物件和類別,以更好的理解清單。 


2)物件=屬性+方法 


3)列表是使用物件和類別的範例。 


    ——當你使用變數i並給它賦值的時候,例如賦整數5,你可以認為你創建了一個類別(類型)int的物件(實例)i。 


    ——help(int) 


4)類別也有方法,即僅為類別而定義地函數。 


    -僅在該類別的物件可以使用這些功能。 


    -例如: 


        a.Python為list類別提供了append方法,此方法讓你在清單尾加上一個項目。 


        b.mylist.append('an item')清單mylist中新增字串。注意,使用點號來使用物件的方法。 


5)類別也有變量,僅為類別而定義的變數。 


    -僅在該類別的物件可以使用這些變數/名稱。 


    -以點號使用,例如mylist.field。



第五節    字典{} 


1)字典是python中唯一的映射類型(雜湊表) 


2)字典是python中唯一的映射型態(雜湊表) 


2)字典對字典必須使用不使用的字典對象,並且在一個字典中可以使用不同類型的鍵值。 


3)key()或 values()回傳鍵列表或值列表 


4)items()傳回包含鍵值對的元組。


 

建立字典: 

    - {} 

    - 使用工廠方法 ',2]) 

    - 內建方法:fromkeys(),字典中的元素具有相同的值,預設為None 

        範例:ddict={}.fromkeys(('x','y'),

>>> dic={0:0,1:1,2:2}        這裡我們定義了一個字典{key:value,key:value,key:value} 

>>> dic[0] 

0 >>> dic[1] 


>>> dic[2] 


>>> dic1={'name':'milo','age':25,'gender':'male'}這樣定義會比較有意義一些 


>>> dic1['name']        我們值的時候更有目的性 

'milo' 
>>> dic1['age'] 

'milo' 

>>> dic1['age'] 
'milo' 

>>> dic1['age'] 

'milo' 
> dic1['gender'] 

'male' 


>>> dic2={1:'123','name':'milo','x':456} 

>>> dic2 

{1: '123', 'name': 'milo' , 'x': 456} 

接下來我們看另一個例子: 

>>> a=1            這裡我們先定義兩個變數
>       :'aaa','b':'bbb'}        如果a沒有定義這裡會出現錯誤 

>>> dic3[1] 
'aaa' 

🠎🠎看到差異了,其實在字典裡面,他並沒有使用b之前定義的值


Traceback (most recent call last): 
  File "", line 1, in  

KeyError: 20

> '] 

'bbb' 

>>> dic1 
{'gender': 'male', 'age': 25, 'name': 'milo'} 
>> 使用字典的方便了 
...     print k 
... 
gender 
age 
name 
>>> for k in dic1:    
'male' 
25 
'milo' 





更新與刪除: 

    - 直接以鍵值存取更新;內建的uodate()方法可以將整個字典的內容拷貝到另一個字典中。


    - del dict1['a']刪除字典中鍵值為a的元素 


        a.   b.    dict1. clear()刪除字典所有元素 


        c.    del dict1刪除整個字典 


>>> l 
[1, 2, 53, most recent call last): 

  File "", line 1, in  

IndexError: list assignment index out of range 
>>> dic1 

{'gender': 'male', 'name': 25, 'name: 'male', 'name': 'male', 'name': 'male' milo'} 

>>> dic1['tel']='123454565'      在這裡我們看到在使用字典的時候可以這樣加一個值無報錯 
>>> dic1 

{'gender': 'male', ' age': 25, 'tel': '123454565', 'name': 'milo'} 



我們看到他並不是增加到最後面的,因為字典中它本身並不是固定的,字典的無序性,hash型的值,透過字典的key可以直接操作字典裡面的元素 


>>> dic1['tel']='888888888' 
>>> dic1 


{'gender: ' , 'age': 25, 'tel': '888888888', 'name': 'milo'} 



>>> dic1.pop('age')     

>>> dic1.pop('age')     裡面就沒有age這個鍵值了


25 
>>> dic1 

{'gender': 'male', 'tel': '8888888888', 'name': 'milo'} 

>>> dic1.clear( )        清空字典 
>>> dic1 

{} 

>>> del(dic1)         
NameError: name ' 。鍵、值)。

工廠函數dict(): 



    - 例如:dict(zip('x','y'),(1,2))或dict(x=1,y 'y':2,'x':1} 

    -    使用字典產生字典比用copy慢,因此這種情況下建議使用copy()。 


1)len(),hash()(用於判斷某個物件是否可以做一個字典的鍵,非雜湊型別報TypeError錯誤)。 

2)dict.clear():刪除字典中所有元素。 

3)dict.fromkeys(seq,val=None):以seq中的元素為鍵建立並傳回一個字典,val為製定的預設值。

4)dict.get(key,default=None):傳回key的value,如果該鍵不存在傳回default指定的值。 

5)dict.has_key(key):判斷字典中是否有key,建議使用in和not in代替。 

6)dict .items():傳回鍵值對元組的清單。 

7)dict.keys():傳回字典中鍵的列表。 

8)dict.iter*():iteritems(),iterkeys(),itervalues()回傳迭代而不是列表。 

9)dict.pop(key[,default]):同get(),差異是若key存在,刪除並回傳其dict[key],若不存在切default未指定值,則拋出KeyError異常。 

10)dict.setdefault(key,default=None):同set(),若key存在則回傳其value,若key不存在,則dict[key]=default。 

11)dict.update(dict2):將dict2中的鍵值對加到字典dict中,如果有重複覆蓋,原字典不存在的條目加入。 

12)dict 。 values() :傳回字典所有值的清單。


>>> dic.get(3)        我們檢視字典 

>>> dic.get(3,'error') 

其他的例子我們可以練習一下,如果不懂我們可以使用help這個功能。


>>> dic1={'a':123,'b':456,1:111,4:444} 

>>> dic1.keys() 
['a', 1, 'b', 4] 

>>> dic1.values() 

[123, 111, 456, 444] 



 以上是中文python資料類型 的內容,相關內容更多相關內容www.Pwww. cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板