Python基礎知識(五)--數據類型

 

  1. #標識符,以字母或下劃線開頭,不與關鍵字重複  
  2. #不使用系統內置標識符、函數名、異常名  
  3. #不使用開頭和結尾都是下劃線作爲自定義標識符名  
  4. #以免與系統定義的特殊方法或變量衝突  
  5. #當循環不影響實際變量的時候,可以在for..in中使用單個_  
  6. for _ in (012345):  
  7.     print("Hello"
  1. #關鍵字列表  
  2. and         continue        except      global 
  3. lambda      pass            while       as  
  4. def         False           if          None 
  5. raise       with            assert      del 
  6. finally     import          nonlocal    return 
  7. yield       break           elif        for 
  8. in          not             True        class 
  9. else        from            is          or   
  10. try 
  1. #整數  
  2. x = 14600926                    #10進制  
  3. print(x)                        #14600926  
  4. x = 0b110111101100101011011110  #二進制  
  5. print(x)                        #14600926  
  6. x = 0o67545336                  #8進制  
  7. print(x)                        #14600926  
  8. x = 0xDECADE                    #16進制  
  9. print(x)                        #14600926 
  1. a = 5 
  2. b = 7 
  3. print(a + b)                    #12  
  4. print(b - a)                    #2  
  5. print(a * b)                    #35  
  6. print(a / b)                    #0.7142857142857143  
  7. print(b // a)                   #1  
  8.                                 #相當於round(b / a)  
  9. print(b % a)                    #2  
  10.                                 #求模(取餘數)  
  11. print(a ** b)                   #78125  
  12.                                 #a的b次方,相當於power(a, b)  
  13. x = -13 
  14. print(abs(x))                   #13  
  15.                                 #絕對值  
  16. print(divmod(b, a))             #(1, 2)  
  17.                                 #b除以a的商和餘數  
  18. print(pow(a, b))                #78125  
  19.                                 #同a ** b  
  20. print(pow(a, b, 3))             #2  
  21.                                 #相當於(a ** b) % 3  
  22. print(round(3.1534324))         #3  
  23. print(round(3.15343244))      #3.1534  
  24.                                 #四捨五入,當指定第二個參數  
  25.                                 #返回包含指定個數小數位的數 
  1. #對象的創建可以通過給變量賦字面意義上的值如:  
  2. i = 15 
  3. print(i)                        #15  
  4. #或將相關的類型做函數調用  
  5. x = int(17)  
  6. print(x)                        #17  
  7.  
  8. #有些對象如decimal.Decimal只能通過數據類型創建  
  9. #1.當不使用參數調用數據類型函數時,會被賦值一個默認值  
  10. x = int()  
  11. print(x)                        #0  
  12.  
  13. import decimal  
  14. y = decimal.Decimal()  
  15. print(y)                        #0  
  16.  
  17. #2.使用一個參數調用數據類型函數  
  18. #  當參數是同樣的數據類型時候,會創建一個新對象  
  19. #  新對象是原始對象的淺拷貝  
  20. #  當參數不是同樣類型就會嘗試進行轉換  
  21. a = bin(1985)  
  22. print(a)                        #0b11111000001  
  23. a = hex(1985)  
  24. print(a)                        #0x7c1  
  25. a = oct(1985)  
  26. print(a)                        #0o3701  
  27.  
  28. #3.使用兩個參數調用數據類型函數  
  29. #int(s, base)參數s爲欲轉換的字符串,參數base是轉換時的進制  
  30. #base一般可選2、8、10、16...  
  31. #long(s, base)用法與同上  
  32. a = int('1985'10)  
  33. print(a)                        #1985  
  34. a = int('0x7c1'16)  
  35. print(a)                        #1985  
  36. print(int('A4',16))             #164  
  37.  
  38. #整數位邏輯操作符  
  39. i|j     #邏輯OR  
  40. i&j     #邏輯AND  
  41. i^j     #邏輯XOR  
  42. i<<j    #i左移j位  
  43. i>>j    #i右移j位  
  44. ~i      #反轉i的每一位  
  45.  
  46. #布爾型  
  47. #有兩個內置的布爾型對象True/False  
  48. a = (1 == 2)  
  49. print(a)                        #False  
  50. print(not a)                    #True  
  51. print(a and True)               #False  
  52. print(a or True)                #True  
  53.  
  54. #浮點類型  
  55. #float  
  56. #Python3.x對於float類型使用David Gay(?)算法,但仍然不能保證準確  
  57. print(0.05.4, -2.58.9e-4)   #0.0 5.4 -2.5 0.00089  
  58.  
  59. #對於需要使用高精度的時候,應該選擇decimal.Decimal  
  60. #它在進行計算的時候可以達到我們指定的精度,默認小數點後28位  
  61. #且可以準確表示循環小數  
  62. #decimal運算速度慢,但準確性好,適合財務計算  
  63.  
  64. #浮點數  
  65. #所有數值型運算與函數都可以與浮點數一起使用  
  66. def equal_float(a, b):  
  67.     return abs(a - b)  
  68.  
  69. print(equal_float(1.12.2))    #1.1  
  70.  
  71. import sys  
  72. print(sys.float_info.epsilon)   #2.220446049250313e-16  
  73. #sys.float_info.epsilon是表示特定機器上兩個浮點數的最小區別  
  74.  
  75. #使用int函數可以轉換浮點數爲整數-返回整數捨棄小數  
  76. #用round()可以對小數部分四捨五入  
  77. #用math.floor()和math.ceil()向上或向下轉爲最鄰近的整數  
  78. x = 1.35 
  79. print(int(x))                   #1  
  80. print(round(x))                 #1  
  81.  
  82. import math  
  83. print(math.floor(x))            #1  
  84. print(math.ceil(x))             #2  
  85.  
  86. #如果浮點數小數部分爲0,float.is_integer()返回True  
  87. x = 3.0 
  88. print(x.is_integer())           #True  
  89.  
  90. #foat.hex()可將浮點數以十六進制表示爲字符串  
  91. #相反操作是float.fromhex()  
  92. x = 1.35.hex()  
  93. print(x)                        #0x1.599999999999ap+0  
  94. x = float.fromhex('0x1.599999999999ap+0')  
  95. print(x)                        #1.35  
  96. print(x.hex())                  #0x1.599999999999ap+0 
  1. #math模塊的函數與常量  
  2. #math.acos(x)       #返回弧度x的反餘弦值  
  3. #math.acosh(x)      #返回弧度x的反正切值  
  4. #math.asin(x)       #返回弧度x的反正弦值  
  5. #math.asinh(x)      #返回弧度x的反雙曲正弦  
  6. #math.atan(x)       #返回弧度x的反正切  
  7. #math.atan2(y, x)   #返回弧度y / x的反正切  
  8. #math.atanh(x)      #返回弧度x的雙曲正切  
  9. #math.ceil(x)       #返回大於或等於x的最小整數  
  10. #math.copysign(x, y)#將x的符號設置爲y的符號  
  11. #math.cos(x)        #返回弧度x的餘弦  
  12. #math.cosh(x)       #返回弧度x的餘弦值(角度)  
  13. #math.degrees(x)    #將浮點數x從弧度轉換爲度數  
  14. #math.e             #常數e,約等於2.718281828459045  
  15. #math.exp(x)        #返回e的x次方,即math.e ** x  
  16. #math.fabs(x)       #返回|x|,即x的絕對值  
  17. #math.factorial(x)  #返回x!  
  18. #math.floor(x)      #返回小於等於x的最大整數  
  19. #math.fmod(x, y)    #生成x除以y後的模(餘數)比%更好  
  20. #math.frexp(x)      #返回一個二元組,分別是x的指數部分與假數部分  
  21. #math.fsum(i)       #對iterable i中的值進行求和?  
  22. #math.hypot(x, y)   #(x平方+y平方)的平方根  
  23. #math.isinf(x)      #如果浮點數x是±inf(±∞)則返回True  
  24. #math.isnan(x)      #如果x不是一個數字則返回True  
  25. #math.ldexp(m, e)   #返回m * (2 ** e)是math.frexp(x)的反轉  
  26. #math.log(x, b)     #log x以b爲底,b可選,默認爲math.e  
  27. #math.log10(x)      #log x以10爲底  
  28. #math.log1p(x)      #log(1+x)以e爲底,x近似於0時更準確  
  29. #math.modf(x)       #以floatS形式返回x的小數與整數部分的元組  
  30. #math.pi            #常量π,約爲3.141592653589793  
  31. #math.pow(x, y)     #返回x ** y(浮點數)  
  32. #math.radians(x)    #角度x轉換爲弧度  
  33. #math.sin(x)        #返回弧度x的正弦  
  34. #math.sinh(x)       #返回弧度x的雙曲正弦值  
  35. #math.sqrt(x)       #返回x的平方根  
  36. #math.sum(i)        #對iterable i中的值進行求和?  
  37. #math.tan(x)        #返回弧度x的正切值  
  38. #math.tanh(x)       #返回弧度x的雙曲正切值  
  39. #math.trunc(x)      #返回x的整數部份與int(x)相同  
  40.  
  41. #math.hypot(x, y)計算原點到point(x, y)的距離,  
  42. #與函數math.sqrt((x ** 2) + (y ** 2))  
  43.  
  44. #math依賴於編譯Python時使用的底層數學模塊,一些錯誤條件與邊界  
  45. #情況在不同平臺下會有不同的表現 
  1. #複數  
  2. #複數是一對浮點數,一個表示實數部分,一個表示虛數部分(其後跟一個字母j)  
  3. #複數的部分都以屬性名形式存在,分別是:real和imag  
  4. z = -1.892 + 5.742j 
  5. print(z.real)       #-1.892  
  6. print(z.imag)       #5.742  
  7.  
  8. #除//、%、divmod()從及三個參數的pow()之外,  
  9. #所有數值型操作符及函數都可用於複數運算,  
  10. #math模塊中的函數不能處理複數  
  11. #cmath模塊中的函數用來處理複數  
  12. #除math中的函數外 ,還包括cmath.phase()/cmath.polar()/cmath.rect()  
  13. #此外複數有一個conjugate()方法用於改變虛數部分的符號  
  14. z += 1 
  15. print(z)            #(-0.8919999999999999+5.742j)  
  16. z -= 1 
  17. print(z)            #(-1.892+5.742j)  
  18. print(z.conjugate())#(-1.892-5.742j)  
  19.  
  20. #十進制數字  
  21. #創建十進制數字用decimal模塊裏面的decimal.Decimal()  
  22. #參數可以爲整數或字符串,不能用浮點數  
  23. #浮點數用decimal.Decimal.from_float()函數  
  24. a = decimal.Decimal(5)  
  25. b = decimal.Decimal("5.34")  
  26. print(a + b)                    #10.34  
  27. #所有數值型操作符及函數都可用於decimal.Decimal  
  28. #但**操作符左側爲decimal.Decimal時右側必須爲整數pow()函數同樣  
  29. #math/cmath裏面的函數不適合於處理decimal.Decimal  
  30. print(a.exp())                  #148.4131591025766034211155800  
  31. print(a.ln())                   #1.609437912434100374600759333  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章