python的内置数据结构之数值型

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 "", line 1, in

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'

很明显,返回的值都是字符串类型.

end.