Python(二).數據類型,數據類型轉換


數據類型

    在python中,能夠直接處理的的數據類型有以下幾種:(這里似乎說法不一樣,我這里僅表示自己的觀點)

(1).數字(Number)

(2).字符串(String)

(3).布爾值(Bool)

(4).空值(None)

 

(1).數字(Number):

    數字包括整數(int),浮點數(float),復數(complex)。

整數:Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,並且因為是python3,沒有了python2的長整型(long)。

所以整數沒有限制大小。(受限於虛擬內存)        例如:10086,-22332233,0等都是整數。

計算機由於使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0x67等。

>>>a=1000
>>>b=-100
>>>print(a-b)
1100

 

浮點數:浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的。例如,1.23x109和12.3x108是完全相等的。

浮點數可以用數學寫法,例如:1.56,-0.32,6.66等。但對於很大的浮點數,必須用科學計數法表示,(10用e代替)。例如:1.23x103=1.23e3,0.000099=9.9e-5

      由於整數和浮點數在計算機內部的存儲方式不一樣,整數運算永遠是精確的(除法也是!),而浮點數運算可能會有四舍五入的誤差。

例如:

1 >>>a=pow(1.23,3) 2 >>>b=pow(1.23,2) 3 >>>print(b-a) 4 -0.3479669999999999

 

復數與數學中的概念一樣,對,就是那個a+bi。復數由實數部分和虛數部分構成,也可以表示成complex(a,b)。復數的實部real和虛部imag都是浮點型。a,b都是浮點型。

操作如下:

1 >>>v=a+bi 2 >>>v.real  #實部
3 a 4 >>>v.imag  #虛部
5 b 6 >>>v.conjugate()  #共軛復數
7 a-bi

注:#符號為注釋,注釋后的內容僅顯示在代碼行中,是對代碼作用的解釋。

 

(2).字符串(string):

    字符串是一個由字符組成的序列,用單引號(’)或雙引號(”)括起來。有時需用轉義字符(\)。

轉義字符:當需要在字符串中使用特殊字符時,,需要用反斜杠( \ )作為轉義字符。(前面有說過但是並不全面)

    常用轉義字符:

 

轉義字符 具體描述
\n 換行
\r 回車
\' '
\" "
\\ \
\(在行尾時) 續航符
\a 響鈴
\b 退格(backspace)
\000
\v 縱向制表符
\t 橫向制表符

例如:

 1 >>>print("\\\t\\\000")  2 \ \  3 >>>print('我是\n學生')  4 我是  5 學生  6 >>>print("鬼\  7 滅\  8 之\  9 ") 10 鬼滅之刃

 

(3).布爾值(Bool):

    布爾值通常用來判斷條件是否成立。一個布爾值只有True/False兩種值。

    在python2中沒有布爾值,它用1表示True,0表示False。

    在python3中,True和False被定義成了關鍵字,但它們的值仍然是1和0,並可以和數字相加。

 

 1 >>>print(True)  2 True  3 >>>print(False)  4 False  5 >>>print(4>2)  6 True  7 >>>print(4>8)  8 False  9 #數值運算
10 >>>print(int(True),int(False)) 11 1 0 12 >>>print(((True+100)-True)/100) 13 1.0
14 >>>print('%s, %d'% (bool('0'), False)) 15 True , 0

 

    每一個Python對象都天生具有布爾值(True/False),  進而可用於布爾測試(如用在if、while中)。

    以下對象的布爾值都是False:

        1.none

        2.False(布爾型)

        3.0【整型0】:0;【長整型0】:0L;【浮點型0】:0.0;【復數0】:0.0+0.0j。

        4.空【空字符串】:'';【空列表】:[];【空元組】:();【空字典】:{}。

 

        5.用戶自定義的類實例,該類自定義返回0或False的方法。

    除開上述對象之外的所有其他對象的布爾值都為True。

 

 1 >>>print(bool(True))  2 True  3 >>>print(bool(None and True))  4 False  5 >>>print(bool(None),bool(0),bool(0.0),bool(0.0+0.0j))  6 False False False False  7 >>>print(bool(''), bool([]), bool(()), bool({}))  8 False False False False  9 >>>class A: pass
10 >>> class B: 11             def __len__(self): 12                 return 0 13 >>> class C: 14             def __nonzero__(self): 15                 return False 16 >>> print(bool(A), bool(A())) 17 >>> print(bool(B), bool(B())) 18 >>> print(bool(C), bool(C())) 19 True True 20 True False 21 True True

 

 

 

 

    布爾值可以用and,or,not運算。(基本上和數學中的 與,或,非 差不多。)

    and是與運算:只有所有都為True,and的運算結果才能是True。

 

1 >>>print(True and True) 2 True 3 >>>print(True and False) 4 False 5 >>>print(5<2 and 4>6) 6 False

 

   or是或運算: 只要其中一個為True,運算結果就為True。

1 >>>print(True or False) 2 True 3 >>>print(False or False) 4 False 5 >>>print(bool(None or 1)) 6 True

    not是非運算:它是一個單目運算符,把True變成False,False變成True。

1 >>>print(not True) 2 False 3 >>>print(not '') 4 True

 

(4).空值(None):

    空值是Python里一個特殊的值,用None表示。

    None並不是0。不要將二者混淆。0是有意義的,而None只是一個特殊的空值。

 

【注:數據類型還有列表,元組等,會在以后說。】

 

 

數據類型轉換

有時候,我們需要對數據的類型進行轉換。這時候只要將所需的數據的類型作為函數名即可

以下就是一些數據類型的轉換用到的函數,這些函數會返回一個新的對象,表示轉換的值。

函數 描述
int(x[,base]) 將x轉換為一個整數
float(x) 將x轉換到一個浮點數
complex([real[,imag]]) 創建一個復數
str(x) 將對象 x 轉換為字符串
repr(x) 將對象 x 轉換為表達式字符串
eval(str) 用來計算在字符串中的有效Python表達式,並返回一個對象
tupel(s) 將序列 s 轉換為一個元組
list(s) 將序列 s 轉換為一個列表
set(s) 轉換為可變集合
dict(d) 創建一個字典。d 必須是一個 (key, value)元組序列
frozenset(s) 轉換為不可變集合
chr(x) 將一個整數轉換為一個字符
ord(x) 將一個字符轉換為它的整數值
hex(x) 將一個整數轉換為一個十六進制字符串
oct(x) 將一個整數轉換為一個八進制字符串

 

END

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM