1. 程式人生 > >python中標準的六個資料型別詳解

python中標準的六個資料型別詳解

Python3中有六種標準的資料型別

數字(Number)

Python 數字資料型別用於儲存數值。
Python 支援三種不同的數值型別:整型(int)、浮點型(float)、複數(complex)
整型:通常稱為整數,是整數或者負數,不帶小數點。python3整型型別沒有大小限制。int型數字:0、10 -780、-089、-0x270、0x90。 浮點型:浮點型由整數部分與小數部分組成。float型數字:0.0、15.2、-2.9、-32.5e10、32+e18。 浮點數可以用科學計演算法表示:2.5e2 = 2.5 x 10^2 = 250 複數型:複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。
complex:3.14j、9.23e-35j、4.53e-7j。 python數字型別相互轉換 int(x) 將x轉換為一個整數。
float(x) 將x轉換到一個浮點數。
complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。complex(x, y) 將 x 和 y 轉換到一個複數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。
python數字運算 和其他不一樣的是:  /  :返回的是浮點數、// :向下取整數、 ** : 冪運算
>>>7/2
3.5
>>17//3
5
>>>2**3
8

字串(String)

雙引號或者單引號中的資料,就是字串。
str1 = "hello,world"
str2 = "Jim"
單字元在python中也是當做一個字串來使用。 python訪問字串中的值
var1 = "hello world"
var2 = "python3"
print("var1[0]",var1[0]   #var1[0] h
print("var2[3:6]",var2[3:6])   #var2[3:6] hon
python字串的分片 通過上邊界不包括在內。
str = "string"
str[1:3] # "tr" 
#獲取從偏移為1到偏移為3的字串,不包括偏移為3的字元
str[1:] # "tring"
#獲取從偏移為1到最後的一個字元,不包括最後一個字元
str[:3] #"str"
# 獲取從偏移為0的字元一直到偏移為3的字串,不包括偏移為3的字串
str[:-1] #strin"
#獲取從偏移為0的字元一直到最後一個字元(不包括最後一個字串)     
str[:] #"string"
#獲取字串從開始到結尾的所有元素   
str[-3:-1] #"in"
#獲取偏移為-3到偏移為-1的字元,不包括偏移為-1的字元 
str[::-1] # "gnirts"
#反轉輸出
“+”:實現字串的拼接
string = "hello"+"world"  #"hello world"
字串的方法 replace()方法 Python replace() 方法把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次。
str = "This is A Test"
print(str.replace("is", "was"))  # Thwas was A Test"
print(str.replace("is", "was", 1)) #Thwas is A Test
①find()方法 find() 方法檢測字串中是否包含子字串 str ,如果指定 beg(開始) 和 end(結束) 範圍,則檢查是否包含在指定範圍內,如果指定範圍內如果包含指定索引值,返回的是索引值在字串中的起始位置。如果不包含索引值,返回-1。
語法: 
str.find(str,beg = 0, end = len(str))
引數: str -- 指定檢索的字串
beg -- 開始索引,預設為0。
end -- 結束索引,預設為字串的長度。
返回值: 如果包含子字串返回開始的索引值,否則返回-1。
str1 = "python web: www.python.org"
str2 = "we"
print(str1.find(str2)) # 7
print(str1.find(str2, 3)) # 7
print(str1.find(str2, 8)) # -1
②index()方法 和find()方法相似,唯一的區別就是find方法不包含索引值會返回-1,而index()不包含索引值會丟擲異常。 ③join()方法 連線字串陣列。將字串、元組、列表中的元素以指定的字元(分隔符)連線生成一個新的字串。join是重要的字串方法,用來在佇列中新增元素。 注意:需要新增的元素必須都是字串。 語法
str.join(sequence) 
str = "-"
a = [1,2,4]
b = ["a","b","c"]
print(str.join(a)) #wrong
print(str.join(b)) #a-b-c
④split()方法 和join方法相反,split方法把字串分成序列。 語法
str.split(str="", num=string.count(str)).
str -- 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。
num -- 分割次數。
返回值
返回分割後的字串列表。
str = "ithis is string examplei"
print(str.split()) #['ithis', 'is', 'string', 'examplei']
print(str.split("s",1)) #['ithi', ' is string examplei']
print(str.split("i"))  #['', 'th', 's ', 's str', 'ng example', '']
記住一點兒:str1.split(str2)按照 str2分割時候,就把str2 換成 "," 形式。以" i  ipython  oi" 為例,把字串的所有 i 換成 ","形式,結果為:" ", " ","python o"," " ⑤len()方法 Python len() 方法返回物件(字元、列表、元組等)長度或專案個數。
str = "i love python"
print(len(str)) #13
List = [1,3,5,7]
print(len(List)) #4
⑥lower()方法       Python lower() 方法轉換字串中所有大寫字元為小寫。 ⑦upper()方法       Python lower() 方法轉換字串中所有小寫字元為大寫。 ⑧isnumeric()方法  如果 string 中只包含數字字元,則返回 True,否則返回 False ⑨isspace()方法   如果 string 中只包含空格,則返回 True,否則返回 False.
str = "This Is A Test"
print(str.lower())  # this is a test
print(str.upper())  # THIS IS A TEST
str = "tt44333"
print(str.isnumeric()) #False
str = "44333"
print(str.isnumeric()) #True
print(str.isspace())  #False
str=" "
print(str.isspace()) #True
字元格式化操作
age = 10
str = "python"
print("今年%d歲"%age,"the string %s"%str)

列表(List)

當我們需要儲存一組資料時候,就需要用序列,序列給每個元素都分配一個索引,第一個是0,第二個是1,依次論推。常用的序列有:列表和元組,當我們需要改變序列的元素時候,就用列表,因為某些原因,序列不能修改時候,使用元組更加合適。 建立一個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可。列表的資料項不需要具有相同的型別。
list1 = ["yqq", "boy", 27]
list2 = [1, 2, 3, 4]
list3 = ["a", "b", "c"] 
python列表的索引 可以通過下標訪問列表中的值,也能通過下標來重新賦值。字串不能通過下邊類重新賦值。
list1 = ["yqq", "boy", 27]
list1[1] = "girl"
print(list1) #['yqq', 'girl', 27]
str = "4444"
str[0]="5"
print(str) #wrong
python列表的分片 使用索引可以實現單個元素的訪問,分片可以操作一定範圍的元素。
格式:list[n, m]
n: 提取部分的第一個元素的編號。 m: 分片剩餘部分的第一個元素的編號。 第一個是分片的開始,m-n 是分片的個數(n:包含在分片中,m不包含字啊分片中)
list = [1,2,3,4,5,6,7,8,9,10]
print(list[3:6]) #[4,5,6]
print(list[0:1]) #[1]
print(list[7:10]) #[8,9,10]
print(list[-3:]) #[8,9,10]
print(list[-1:]) #[10]  #分片操作
print(list[-1]) #10   #訪問列表的值
可以在分片時候,指定步長,步長可以為正數,也可以是負數。步長為負數,從右向左提取元素。
list = [1,2,3,4,5,6,7,8,9,10]
print(list[::2]) #[1, 3, 5, 7, 9]
print(list[::-1]) #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
#從索引8到索引3,步長為 -1.
print(list[8:3:-1]) #[9,8,7,6,5]
print(list[0:10:-2]) #[]
print(list[5::-2]) #[6, 4, 2]
print(list[:5:-2]) #[10,8]   

序列相加 只有相同型別的序列才能相加
>>>[1,2]+[3,4]
[1,2,3,4]
>>>[1,2,3]+"hello"
wrong
序列迭代 依次輸出列表的元素
for x in [1, 2, 3]:
     print x,
刪除元素 del 語句來刪除元素
list1 = ['physics', 'chemistry', 1997, 2000];
del list1[2]
python列表的函式 len(list) 列表元素個數 max(list) 列表元素的最大值
max(list) 列表元素的最小值 list(seq)  把seq轉化為列表
aTuple = (123, 'Google', 'Runoob', 'Taobao')
list1 = list(aTuple)
print ("列表元素 : ", list1)  # 列表元素 :  [123, 'Google', 'Runoob', 'Taobao']
str="Hello World"
list2=list(str)
print ("列表元素 : ", list2) #列表元素 :  ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
python列表包含的函式
list.append(obj)   列表的末尾新增新的物件
List =[1,2,3,4]
List1 =[3,4,5]
List.append(5)
print(List)  #[1, 2, 3, 4, 5]
List.append(List1)
print(List)#[1, 2, 3, 4, 5, [3, 4, 5]]
list.extend(seq) 在列表末尾一次性追加另一個序列中的多個值
List =[1,2,3,4]
List1 =[3,4,5]
List.extend(List1)
print(List)#[1, 2, 3, 4, 5, 3, 4, 5]
List.append(List1)
print(List)#[1, 2, 3, 4, 5,[ 3, 4, 5]]
list.insert(index,obj)
函式用於將指定物件插入列表的指定位置。
List =[1,2,3,4]
List1 =[3,4,5]
List.insert(3, List1)
print(List)#[1, 2, 3, [3, 4, 5], 4]
list.pop()
函式用於移除列表中的一個元素(預設最後一個元素),並且返回該元素的值。
list.pop(obj=list[-1])
list.remove(obj) 函式用於移除列表中某個值的第一個匹配項。
list.count(obj)
用於統計某個元素在列表中出現的次數。

元組(Tuple)

某些情況下,我們需要的序列不可修改,這個時候,就需要用元組,元組和列表相似,但是元組的元素值不可修改也不能刪除,可以進行分片和連線。 元組建立很簡單,用小括號括起來,用逗號隔開。元組使用小括號,列表使用中括號。
Tuple = () #建立元組
Tuple = ("a","b","c","d")
Tuple = ([1,2,3],"a",3,)
注意:一個元素的元組,後邊加一個“,”。
Tuple =(30,)
訪問元組
>>> tuple = ("abcd",1,[1,2,4])
>>> tuple[0]
'abcd'
>>> tuple[1]
1
>>> tuple[2]
[1, 2, 4]
>>> 
修改元組
>>> tuple = ("abcd",1,[1,2,4])
>>> tuple[0]="ad"  #wrong
元組合並
>>> tuple = ("abcd",1,[1,2,4])
>>> tuple1 =("ad",3,4)
>>> tuple + tuple1
('abcd', 1, [1, 2, 4], 'ad', 3, 4)
刪除元組
元組的元素不允許刪除,但是我們可以刪除整個元組。
>>> tuple = ("abcd",1,[1,2,4])
>>> del tuple
任意的以“,”分開的序列,預設是元組。
>>> a = 1,2,3,4
>>> a
(1, 2, 3, 4)
>>> a =[1,2,3,4],5,"str"
>>> a
([1, 2, 3, 4], 5, 'str')
元組的函式
tuple()方法語法:Python 元組 tuple() 函式將列表轉換為元組。

集合(Set)

以後補充.......

字典(Dictionary)

列表中元素通過下標進行定位,但是元素位置發生變化,則很難定位,python提供一種新的型別,那就是字典。字典中元素可以通過 key 訪問。 說明: 字典是由花括號括起來的包含,key : value 兩部分。 dict = {'name':'班長', 'id':100, 'sex':'f', 'address':'地球亞洲中國北京'} 字典和列表一樣,也能夠儲存多個數據
列表中找某個元素時,是根據下標進行的
字典中找某個元素時,是根據'名字'(就是冒號:前面的那個值,例如上面程式碼中的'name'、'id'、'sex')
訪問字典的值
dict = {"name":"yqq", "age":27}
print(dict["name"],dict["age"]) 
修改字典 通過 key 來修改值。
dict = {"name":"yqq", "age":27}
dict["age"] =25
print(dict)  # {'name': 'yqq', 'age': 25}
dict["school"] ="bj"
print(dict) # {'name': 'yqq', 'school': 'bj', 'age': 25}  
刪除字典或者元素
del dict[key] #刪除 key 條目
del dict  #刪除字典
dict.clear() #清除所有條目
字典的方法 dict.len(),        測量字典中,鍵值對的個數。 dict.values()    返回一個包含字典所有value的列表 dict.keys()     返回一個包含字典所有KEY的列表 dict.items()     返回一個包含所有(鍵,值)元祖的列表
dict =  {'name': 'yqq', 'school': 'bj', 'age': 25}
print(len(dict)) #3
print(dict.keys())  #dict_keys(['name', 'age', 'school'])
print(dict.values()) #dict_values(['yqq', 25, 'bj'])
print(dict.items()) #dict_items([('name', 'yqq'), ('age', 25), ('school', 'bj')])
字典的遍歷 遍歷鍵、遍歷值、遍歷項、遍歷鍵值對
for key in dict.keys():
    print(key)
# name
# age
# school
for value in dict.values():
    print(value)
# yqq
# 25
# bj
for item in dict.items():
    print(item)
# ('name', 'yqq')
# ('age', 25)
# ('school', 'bj')
for key,value in dict.items():
    print("key=%s"%key,"value=%s"%value)
# key=name value=yqq
# key=age value=25
# key=school value=bj