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
网友评论