Python六大標準數據類型詳解
東堯愛分享
這是東堯每天一篇文章的第6天
東堯寫文章的目標:分享東堯的經驗和思考,幫你獲取物質和精神兩方面幸福。
python中有各種各樣的數據,不同的數據在python中處理需要定義不同的數據類型,例如文字類的數據需要定義為字元串。
那麼python中的數據類型有哪些呢?各數據類型之間又是如何轉換的?
本篇文章東堯將詳細為你介紹python3的數據類型及其轉換。
1
Python數據類型
Python3中的標準數據類型有六種:
Number(數字)、String(字元串)、List(列表)、Tuple(元組)、Sets(集合)、Dictionary(字典)
Number(數字)
Number類型中又包含了int(整數)、float(浮點數)、bool(布爾值)、complex(複數)四種類型。
int整數
Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。
float浮點數
浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的。
比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。
但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。
bool布爾值
布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要麼是True,要麼是False。
在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來:
print(True)
print(False)
print(4>5)
print(4>1)
運行結果如下:
True
False
False
True
布爾值可以用and、or和not運算。and運算是與運算,只有所有都為True,and運算結果才是True:
print(True and True)
print(True and False)
print(False and False)
print(5 > 3 and 3 > 1)
運行結果如下:
True
False
False
True
or運算是或運算,只要其中有一個為True,or運算結果就是True:
print(True or True)
print(True or False)
print(False or False)
print(5 > 3 or 3 > 1)
運行結果如下:
True
True
False
True
not運算是非運算,它是一個單目運算符,把True變成False,False變成True:
print(not True)
print(not False)
print(not 1 > 2)
運行結果如下:
False
True
True
String字元串
Python中的字元串用單引號(")或雙引號(")括起來,同時使用反斜杠()轉義特殊字元。例如:
print("abc")
print("abc")
print("I"m "OK"")
運行結果如下:
abc
abc
I"m "OK"
在這個實例中可以看到,用單雙引號將字元串括起來,得到的效果是相同的。
單引號(『)和雙引號(「)作為特殊字元想要輸出的話,用到了反斜杠()做轉義輸出。
另外,當轉義字元對某些普通字元進行轉義時有特殊的含義。
比如「
」表示換行,「 」表示製表符,字元「」本身也要轉義,所以「\」表示的字元就是「」。讓我們來看看下面這個例子:
print("\
\
")
print("我的名字是:
東堯")
運行結果如下:
我的名字是:
東堯
怎麼理解呢?我們先來看第一句代碼:print("\
\
")括弧內的內容我們可以將其分為四個部分:\ ,
,\ ,
。
第一、三部分\代表的是將特殊字元「」轉義輸出,第二/四部分則代表的是換行輸出。
因此輸出的結果就是 +換行+ +換行。第二句代碼很簡單,就是在一句話中加入了換行語句,便於換行輸出。
為了代碼簡化python裡面允許用r" "表示 " " 內部的字元串默認不轉義。
如果字元串內部有很多換行,用
寫在一行里不好閱讀,為了簡化,Python允許用"""..."""的格式表示多行內容:
print(r"\
\
")
print("""我的
名字
是:
東堯
""")
運行結果如下:
\
\
我的
名字
是:
東堯
2
Python數據類型的轉換
Python數據類型之間是可以進行轉換的,python數據類型的轉換,你只需要將數據類型作為函數名即可。具體的數據類型轉換方式及數據類型轉換實例如下表:
函數
描述
實例
int(x [,base])
將x(字元串或者數字)轉換為一個整數。base: 進位數,默認十進位
>>> int(3.6)
3
>>> int("12",16)
18
float(x)
將x(整數或字元串)轉換到一個浮點數
>>> float(112)
112.0
>>> float("123")
123.0
complex(real [,imag])
創建一個複數
>>>complex(1, 2)
(1 + 2j)
str(x)
將對象 x 轉換為字元串
>>>s = 123
>>> str(s)
"123"
repr(x)
將對象 x 轉換為表達式字元串
>>>s = "RUNOOB"
>>> repr(s)
""RUNOOB""
eval(str)
用來計算在字元串中的有效Python表達式,並返回一個對象
>>> n=81
>>> eval("n + 4")
85
tuple(s)
將序列 s 轉換為一個元組
>>>list1= ["Google", "Taobao", "Runoob", "Baidu"]
>>> tuple1=tuple(list1)
>>> tuple1
("Google", "Taobao", "Runoob", "Baidu")
list(s)
將序列 s 轉換為一個列表
str="Hello World"
list2=list(str)
print ("列表元素 : ", list2)
輸出結果:
列表元素 : ["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"]
set(s)
轉換為可變集合
>>>x = set("runoob")
>>> y = set("google")
>>> x, y
(set(["b", "r", "u", "o", "n"]), set(["e", "o", "g", "l"])) # 重複的被刪除
>>> x & y # 交集
set(["o"])
dict(d)
創建一個字典。d 必須是一個序列 (key,value)元組。
>>> dict(a="a", b="b", t="t")
{"a": "a", "b": "b", "t": "t"}
frozenset(s)
轉換為不可變集合
>>> b = frozenset("runoob")
>>> b
frozenset(["b", "r", "u", "o", "n"])
chr(x)
將一個整數轉換為一個字元。chr() 用一個範圍在 range(256)內的(就是0~255)整數作參數,返回一個對應的字元。
>>> print chr(48), chr(49), chr(97)
0 1 a
ord(x)
將一個字元轉換為它的整數值。是chr()函數的配對函數
>>>ord("a")
97
>>> ord("b")
98
hex(x)
將一個整數轉換為一個十六進位字元串
>>>hex(255)
"0xff"
>>> hex(-42)
"-0x2a"
oct(x)
將一個整數轉換為一個八進位字元串
>>>oct(10)
"012"
>>> oct(20)
"024"
根據上表的信息,我們就可以實現python數據類型之間的轉換了。希望本文對您有幫助。
※Python知識點匯總函數例子+模塊使用
※Python模塊——contextlib和urllib
TAG:Python |