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