Python基础知识(五)--数据类型

2023-01-31 02:01:44 python 基础知识

 

  1. #标识符,以字母或下划线开头,不与关键字重复  
  2. #不使用系统内置标识符、函数名、异常名  
  3. #不使用开头和结尾都是下划线作为自定义标识符名  
  4. #以免与系统定义的特殊方法或变量冲突  
  5. #当循环不影响实际变量的时候,可以在for..in中使用单个_  
  6. for _ in (0, 1, 2, 3, 4, 5):  
  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.1534324, 4))      #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.0, 5.4, -2.5, 8.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.1, 2.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  

相关文章