python数字

作者: linco159 | 来源:发表于2016-05-29 19:06 被阅读34次

    python数字并不是一种真正对象类型,是一组类似的类型,提供类型有:

    • 整数和浮点数
    • 复数
    • 固定精度的十进制数
    • 有理分数
    • 集合
    • 布尔类型
    • 无穷的整数精度
    • 各种数字内置的函数和模块

    整数和浮点数

    python3将整数和长整型合二为一
    python3八进制标识改为0o,增加二进制标识0b

    内置方法

    hex(I):
    oct(I):
    bin():
    int(str,base=10)
    pow()
    abs()
    round()
    pyhon支持连续比较:

    1<x<3 # x<a and x<3
    

    注意

    python3移除操作符<>
    python3移除操作符`,使用repr(r)来代替
    python3取消非数字混合类型比较

    除法

    • x / y python3是真除法,就是现实中的除法;python2是传统除法,也就是说如果俩个操作数是整数结果为整数(截取整数部分),如果有浮点数,结果为浮点数
    • x // y floor除法,不考虑操作数类型,总是省掉小数部分,不大于真正结果的最大整数.

    math.trunc()真正的截断,只保留整数部分
    python3提供了i.bit_length()方法,等价于length.bin(str)-2

    浮点数提供方法:
    f.as_integer_ratio()

    常用模块

    math
    random

    复数

    实数+虚数(j) 来表示 也可以使用complex(real,imag)来创建
    cmath是处理复数的常用工具

    小数(固定精度的十进制数)

    使用decimal.Decimal(str)当不同精度小数混编时自动提升为位数最多的小数
    在3.1中可以通过decimal.Decimal.from_float()实现float想decimal的转换 ,这一转换是精确的,但会增加小数位数
    复数不能与小数进行混合运算
    设置全局精度:decimal.getcontext().prec
    上下文管理器

    with decimal.localcontext as ctx :
            ctx.prec = 2
    

    分数(有理分数)

    模块fraction
    可以使用两个整数和字符串进行初始化
    分数在保证精度情况下,能简化结果
    分数也提供float转换为分数的方法Fraction.from_float(f)但是精度确得不到保证
    注意:

    分数和浮点数运算得到结果是浮点数

    集合Set

    集合是唯一的,不可变对象的无序集合,可以使用可迭代对象进行构建.支持in,-,|,&,^,比较运算,使用add,update,remove修改集合中的项,也支持len,for 等操作.
    python3集合常量:使用{1,2}创建集合,但是{}仍然是字典,空的集合还是必须使用set 进行创建.
    使用frozenset()来创建不可变集合

    布尔型

    True-1,False-0

    相关文章

      网友评论

        本文标题:python数字

        本文链接:https://www.haomeiwen.com/subject/eclzrttx.html