1.1数值型的基本类型和概念
类型 | 含义 | 示例 |
---|---|---|
int | 整型 | 3 |
float | 浮点型 | 3.13 |
complex | 复数 | 2+2i |
bool | 布尔值 | True |
- int,float,complex,bool都是class,1,5.0,1+3i都是对象即实例
- int:python3的int都是长整型,没有大小限制,受限于内存区域大小.
- float:由整数和小数部分组成.C的双精度实现
- complex: 由实部和虚部组成,实部虚部都是浮点数.
- bool:int的子类,仅有True和False对性0和1,可以和整数直接运算.
1.2数字常见的处理方法
- round()函数
round()函数近似于数学中的四舍五入,与四舍五入不同的地方是,当数值处于中间点时(即小数部分为0.5),取离该数值最近的一个偶数.
round(0.49)
0
round(0.5)
0
round(0.51)
1
round(1.49)
1
round(1.5)
2
round(1.51)
2
- math模块,floor()地板,ceil()天花板
floor()和ceil()是math模块下提供的函数.floor()是取距离被处理的数值最近的两个整数里比较小的一个,ceil是取距离被处理的数值最近的两个整数里比较大的一个.
当一个数为正数时,floor()即舍去小数部分取整,ceil()即向上取整.
当一个数为负数时,floor()取较小的数,ceil()舍去小数部分取较大的数.
import math
math.floor(1.4),math.ceil(1.4)
(1, 2)
math.floor(-1.4),math.ceil(-1.4)
(-2, -1)
- int()函数
int():int()函数可以把浮点数取整,也可以把数字的字符串类型转换为整型
>>> int(2.1)
2
>>> int(-2.1)
-2
可见,int()函数只是将浮点数的小数部分抹去,保留整数部分
- //
//:整除.当使用/进行除法运算时,返回的值是一个浮点数.如果我们需要它返回一个整数的话,应当使用//方法.
>>> 7//2
3
>>> -7//2
-4
>>> -7.1//2
-4.0
>>> 7.1//2
3.0
>>> 7//2.1
3.0
>>> -7//2.1
-4.0
可见,整除方法得到的数,如果含有小数部分的话,依旧是取比这个数小一点点的整数.如得到结果是3.5,则取3,如果得到结果是-3.5,则取-4.
值得注意的是,
即使我们使用了整除方法,当我们的除数或者被除数出现了浮点数时,返回的结果虽然小数部分没有数值,但是依然是一个浮点数而不是整数.
*abs()函数
abs():绝对值函数.我们可以通过abs()获得你输入的数的绝对值.
>>> abs(-2.1)
2.1
>>> abs(3.0)
3.0
>>> abs(0)
0
>>> abs(1)
1
当我们输入的是浮点数时,返回的是浮点数.当我们输入的数是整型时,返回的数也是整型.说明abs()仅改变数值的正负,不影响数值的类型.
- min()函数,max()函数
min()函数和max()函数是输出最小值和最大值的函数,当处理对象是数值时,我们可以往函数中放多个数值,一次比较.另外,min()和max()也可以处理可迭代对象中的最大值和最小值的问题
>>> min(1,2,3,4,5,0)
0
>>> max(0,1,3,5,7,9)
9
- pow(x,y)函数
pow(x,y)函数返回x的y次方的值
>>> pow(3,2)
9
>>> pow(9,0.5)
3.0
>>> pow(27,1/3)
3.0
>>> pow(9.0,2)
81.0
可见,使用pow(x,y)时,假如x或者y为浮点数,则输出的值一定为浮点数.加入x和y都为整型,则返回的值为整型.
- math.sqrt()
sqrt()是math下的一个函数.返回一个平方根.由数学知识可知,这个函数只能处理非负数.
>>> import math
>>> math.sqrt(9)
3.0
>>> math.sqrt(16.0)
4.0
>>> math.sqrt(0)
0.0
>>> math.sqrt(-4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
无论我们输入的是整型,浮点型还是0,返回的值都是浮点数.当我们输入的数为负数时,系统报错,输入的值异常.
- math.pi
- math.e
这两个方法都是math模块下的方法
math.pi返回一个圆周率pi.
math.e返回一个自然常数e.
>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
Python默认使用了双精度的浮点数.
双精度浮点数(double)是计算机使用的一种数据类型,使用 64 位(8字节) 来存储一个浮点数。 它可以表示十进制的15或16位有效数字,其可以表示的数字的绝对值范围大约是:2.23x10的-308次方 ~ 1.79x10的308次方。IEEE754为其定制标准
- 进制函数 bin(),oct(),hex()
通过进制函数bin(),oct(),hex(),我们可以轻松地完成进制之间的转换.
bin():可以把各种不同进制的数转换为二进制数
oct():可以把不同进制的数转换为八进制数
hex():可以把不同进制的数转换为十六进制数
这三个进制转换函数可以完成不同进制之间的转换,但是这三个函数只能处理整型,不能处理浮点数,也不能处理字符串
另外,这三个函数返回的值的是字符串类型.
>>> bin(0o7)
'0b111'
>>> oct(12)
'0o14'
>>> oct(0xa)
'0o12'
>>> hex(10086)
'0x2766'
很明显,返回的值都是字符串类型.
python内置数据结构之数值型的基本知识和入门常用的数字处理方法就总结到这里,希望通过总结和梳理达到让知识更加融会贯通的目的.