003数值类型

  Python之中的数据类型有五种:

    1. 任意精度整数(int类型)

    2. 有限精度浮点数(float类型)

    3. 高精度浮点数(Decimal类型)

    4. 分数(Fraction类型)

    5. 复数(complex类型)

 

[A] int类型

    Python之中的整数类型可以为任意长度,只受计算机内存的限制。

  不同进制表示, Python默认进制为十进制,共可表示四种不同进制:

    123 # 十进制数123

    0x123 或 0X123 # 十六进制数123

    0o123 或 0O123 # 八进制数123

    0b111 或 0B111 # 二进制数111

  int对象

    创建int对象:

      x = int(10) # 创建int对象(默认为十进制)
      a = int(‘125’,8) # 将八进制的字符串’125’转换成十进制

    in对象的方法:

      若有int类型数据a,则

      X = a.bit_length() 或x = int.bit_length(a) # 返回a的二进制数长度

  进制转换: Python内置有进制转换函数

    bin(n)            # 将数值n转换成二进制数,其中n可为任意进制的数
    oct(n)            # 将数值n转换成八进制数,其中n可为任意进制的数
    hex(n)            # 将数值n转换成十六进制数,其中n可为任意进制的数

    注:这些进制转换函数所返回的是字符串格式的数据,还需借助int等函数将其转换成数值格式。

[B] float类型

    float类型(有限精度浮点数)是用来表示实数的类型,在Python中其精度与计算机精度有关。Python内部float类型精度有限,一般超过小数点后十五位则开始出现误差。

  创建float对象

    创建float对象的方法为:

      float(x) # 将数值(如123)或者字符串格式的数值(如‘123’)转换成float对象。其中x只能为十进制。

  float对象方法:

    转换成分数,如:

      >>>1.25.as_integer_ratio() 或 float.as_integer_ratio(1.25) # 返回元组(5,4)

    判断浮点型数值是否为整数(即是否无小数部分):

      >>>2.0.as_integer_ratio() 或 float.as_integer_ratio(2.0) # 返回逻辑值 True

 

[C] Decimal类型

 

 

   Decimal对象

 

    decimal为Python一个内置模块,,该模块提供了两种基本数据类型:Decimal(高精度浮点数)和Context(精度和舍入参数),以控制运算精度,有效位数和四舍五入操作。

 

      >>>from decimal import Decimal # 使用Decimal需先导入该模块

      >>>a = Decimal(x) # x可以为数值或者字符型数值

 

 

    注:字符型数值无计算误差

 

  Context对象

 

    Context对象用于设置高精度浮点数运算所涉及的各种参数控制:

 

    Context (prec=None, rounding=None, Emin=None, Emax=None, capitals=None, clamp=None, flags=None, traps=None)
      prec: # 精度
      rounding: # 四舍五入方式
      Emin/ Emax: # 指数范围
      capitals: # 科学计数法中的e的大小写(1表示大写,0表示小写)
      clamp: # 指定指数范围的精确度
      flags: # 环境变量初始状态信号变量
      traps: # 信号列表,返回发生错误时的异常信息

 

    通常不直接创建Context对象,而是采用decimal中的getcontext()函数获取当前活动的Context对象,进而修改相关参数进行计算控制,如:

 

      >>>from decimal import Decimal # 导入相关模块

      >>>ctx = getcontext() # 获取当前活动的context对象

      >>>ctx.prec = 5 # 设置精度为0.00001

 

    Python中设置了三个默认的context模块供选择使用:BsaicContext,ExtendedContext和DefaultContext。在Python中通过decimal模块中的setcontext()函数可以设置当前context对象,如:

 

      >>>from decimal import * # 导入decimal模块

      >>>setcontext(BsaicContext) # 将BsaicContext对象设置为当前context对象

 

 

[D]Fraction类型(分数)

 

 

  创建Fraction对象,其语法如下:

 

    >>>from fractions import Fraction # 导入相关模块

    >>>Fraction(m,n) # 指定分子m和分母n

    >>>Fraction(x)#将数x转换成分式,其中x可为任何数值数据或者文本数据

 

  Fraction对象的方法:None

 

 

[E] complex类型(复数)

 

  complex复数的创建

 

    复数的创建方法有里两种:自然法和函数法

 

      自然法:当数值之中包含虚部(j或者J)时,Python自动解释为复数常量,如:

 

        >>>a = 1+2j # 给变量a赋值1+2j

 

      函数法:用函数complex创建复数

 

        >>>complex(m, n) # 创建复数对象,虚部可选

 

  complex对象的方法

 

    complex对象的方法共三种,分别为:

 

      >>> (1+2j).real # 返回实部

      >>>(1+2j).imag # 返回虚部

      >>>(1+2j).conjugate() # 返回共轭复数

 

 

 

[F] random模块和随机函数

 

  random模块的函数seed()可以设置伪随机数生成的种子,其基本形式为:

 

    random.seed(a = None, version = 2)

 

  其调用方法为:

 

    >>>import random

    >>>random.seed(1)

    >>>for i in range(5): print(random.randint(1,5), end =’,’) # 输出4,1,2,2,1,

 

  保存内部状态(可以保存状态后进行取用),其主要函数为:

 

    s = random.getstate() # 获取当前伪随机数生成器的状态

    random.setstate(s) # 设置之前保存的伪随机数生成器的状态

 

  随机整数

    随机整数的生成方法主要有三种:

      >>>import random

      >>>random.randrange(start, stop, step) # 在[start, stop)之间生成随机整数,若省略start,则在[0, stop);若省略step,则步长默认为1

      >>> random.randint(a, b) # 在[a, b]之中返回随机整数

      >>>random.getrandbit(k) # 返回位(bit)长为k的随机整数

  随机系列

    random模块还可以从祖列中随机抽取数据,其主要方法有四种:

      >>>random.choice(seq) # 从非空的系列seq中随机返回一个元素

      >>> random.sample(seq, k) # 从非空的系列seq中随机返回k个元素

      >>> random.shuffle(x[,random]) # 将非空系列x进行混排,默认方法为random

  随机实数函数

    查表可得

 

posted @ 2022-06-02 11:02  CarreyB  阅读(69)  评论(0编辑  收藏  举报