當前位置:成語大全網 - 漢語詞典 - Python中的幾種數據類型

Python中的幾種數據類型

通常,Python中的數據類型分為以下幾類:

Number(數字)包括int、long、float和complex。

String(字符串)例如:妳好,妳好,妳好。

例如,[1,2,3,4]

字典(Dictionary)比如:{1:倪好,2:妳好}

Tuple(元組)例如:(1,2,3,abc)

Bool(布爾型)包括真和假。

因為Python認為壹切都是對象,所以Python不必像其他壹些高級語言那樣主動聲明變量的類型。

比如我想給變量I賦值100,python的實現:

i=100

C#的實現:

int I = 100;

下面簡要介紹這些數據類型。

數字類型

Int和long

之所以要把int和long放在壹起,是因為在python3.x之後,不區分int和long,而是用int。Python2.x還是有區別的。我以Python2.7為例:

i = 10

類型(壹)

i=1000000000

類型(壹)

那麽為什麽10是壹個int,int,1000000000是壹個long呢?當然這和int的最大值有關。int類型的最大值是231-1,即2147483647。也可以使用sys.maxint。

2**31-1

2147483647L

sys.maxint

2147483647

為什麽上述方法得到的值是長類型(數字後加‘L’表示長類型)?因為2**31的值是2147483648,是長型。如果從long類型中減去1,結果仍然是long,但實際上int類型的最大值是265448。

類型(2147483647)

類型(2147483648)

浮動型

浮點類型與其他語言中的浮點基本相同。浮點數,說白了就是帶小數點的數字,精度和機器有關。例如:

i = 10000.1212

類型(壹)

復數:復數類型,具體含義和用法可查看相關文獻。

字符串類型

聲明壹個字符串有三種方式:單引號、雙引號、三引號(包括三個單引號或三個雙引號)。例如:

str1 = hello world

str2 = hello world

str3 = hello world

str4 = hello world

打印str1

妳好世界

打印str2

妳好世界

打印str3

妳好世界

打印str4

妳好世界

Python中的字符串有兩種數據類型:str類型和unicode類型。str類型采用的ASCII編碼意味著不能代表中文。Unicode type采用Unicode編碼,可以表示任何字符,包括中文和其他語言。而且python中沒有像C語言中的char類型,甚至單個字符都是字符串類型。字符串的默認ASCII編碼。如果要顯示聲明為unicode類型的字符串,需要在字符串前面加上U或U。例如:

str1 =妳好

打印str1

妳好

Str2 = u中國

打印str2

中國

因為項目中經常會出現字符串操作,而且由於字符串編碼會出現很多問題,所以我們先來說說字符串的編碼。在和python打交道的過程中,我們經常會遇到三種編碼:ASCII、Unicode和UTF-8。詳細介紹請參考這篇文章。我簡單的理解是,ASCII編碼適用於英文字符,Unicode適用於非英文字符(如中文、韓文等。),而utf-8是壹種存儲和傳輸格式,對未編碼的字符進行重新編碼(以8位為單位編碼)。例如:

U = u韓

打印報告(u) # uu6c49

s = u.encode(UTF-8)

打印報告# xe6xb1x89

u2 = s.decode(UTF-8)

打印報告(u2) # uu6c49

說明:聲明unicode字符串“Han”,其unicode編碼為“u6c49”。utf-8編碼轉換後,其編碼變為“xe6xb1x89”。

編碼經驗總結:

1.在python文件頭中聲明編碼格式;

#-*-編碼:utf-8 -*-

2.將字符串聲明為unicode,即在字符串前加U或U;

3.對於讀寫文件的操作,建議使用codecs.open()而不是內置的open(),遵循壹個原則,寫用哪種格式,讀用哪種格式;

假設在壹個以ANSI格式保存的文本文件中有“中國漢字”這幾個字。如果在GUI或IDE上直接使用並打印以下代碼(例如,在sublime text或pydev中),將會出現亂碼或異常,因為編解碼器將根據文本本身的編碼格式讀取內容:

f = codecs.open(d:/test.txt)

content = f.read()

f.close()

打印內容

請改用以下方法(只適用於中文):

# -*-編碼:utf-8 -*-

導入編解碼器

f = codecs.open(d:/test.txt)

content = f.read()

f.close()

如果是實例(內容,unicode):

打印內容.編碼(utf-8)

打印utf-8

否則:

print content.decode(gbk)。編碼(utf-8)

列表類型

List是壹種可修改的集合類型,它的元素可以是數字、字符串等基本類型,也可以是列表、元組、字典等集合對象,甚至可以是用戶自定義的類型。其定義如下:

nums =

類型(數量)

打印數字

打印列表

打印數字

第壹附加項(6)

打印列表#

打印數字#

nums.sort(比較)

打印數字#

lstiter = iter(lst)

打印

lstiter = iter(lst)

對於範圍內的I(len(lst)):

依次打印lstiter.next() # Print。

1

2

元組類型

元組類型和列表壹樣,也是壹個序列。與列表不同,元組不能被修改。元組聲明如下:

lst = (0,1,2,2,2)

lst1=(妳好,)

lst2 =(妳好)

Print type(lst1) #如果只有壹個元素,後面應該跟壹個逗號,否則就是str類型。

打印類型(lst2) #

字典類型

字典類型是鍵值對的集合,類似於C#中的字典

dict1 = {}

Print type(dict1) #聲明壹個空字典。

Dict2 = {name: kitty,age: 18} #直接聲明字典類型。

Dict3 = Dict ([(名字,kitty),(年齡,18)]) #使用dict函數將列表轉換為字典。

Dict4 = Dict (name = kitty,age = 18) #用dict函數按關鍵字參數轉換成字典。

Dict5 = {}。fromkeys([name,age]) #使用fromkeys函數從鍵值列表中生成字典,對應的值為None {age: None,name: None}。

字典的基本操作方法:

#添加元素

dict1 = {}

Dict1[mykey] = hello world #直接給壹個不存在的鍵值對賦值,瞬間添加新元素。

Dict1 [(my,key)]

#鍵值對的數量

打印鏡頭(dict1)

#檢查鑰匙

打印dict1 #True中的mykey檢查是否存在帶有mykey的鍵值對。

在dict1 #False中打印hello

#刪除

Del dict1[mykey] #用mykey刪除鍵值對。

繼續使用上述方法查看字典的所有公共方法:

[x for x in dir({ })if not x . starts with(_ _)]

[clear,copy,fromkeys,get,has_key,items,iteritems,iterkeys,itervalues,

keys,pop,popitem,setdefault,update,values,viewitems,viewkeys,viewvalues]

Dict.clear()刪除字典中的所有元素。

Dict.copy()返回字典的副本(淺層副本)。

Dict.get(key,default=None)返回字典Dict中該鍵對應的值,如果字典中不存在該鍵,則返回default的值(註意參數default的默認值是None)。

如果字典中存在關鍵字,Dict.has_key(key)返回True,否則返回False。在Python2.2在中引入而不是在中引入之後,這種方法幾乎已經被放棄了,但它仍然提供了壹個工作接口。

Dict.items()返回字典中(鍵,值)對的列表。

Dict.keys()返回壹個包含字典中的鍵的列表。

Dict.values()返回壹個包含字典中所有值的列表。

Dict.iter()方法iter項()、ITER鍵()和ITER值()與其對應的非叠代方法相同,只是它們返回的是叠代器而不是列表。

Dict.pop(key[,default])類似於get()方法。如果關鍵字key存在於字典中,它將被刪除並返回。如果key key不存在並且沒有給出默認值,將會拋出壹個KeyError異常。

迪克特。setdefault (key,default = none)類似於方法集()。如果字典中沒有鍵,將由dict[key]=default賦值。

迪克特。setdefault (key,default = none)類似於方法集()。如果字典中沒有鍵,將由dict[key]=default賦值。

布爾型

布爾類型有真有假,和其他語言基本壹樣。下面列出了典型的布爾值。

打印bool(0) #False

print bool(1) #True

打印布爾值(-1) #True

打印布爾值([]) #False

print bool(()) #False

打印布爾值({}) #False

打印bool() #False

打印布爾值(無)#False