python数字

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

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

整数和浮点数

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

内置方法

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

1

注意

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数字)