您的位置:首页 > 编程语言 > Python开发

Python内置类型(4)--数值

2017-11-09 14:06 267 查看


Python有以下三种的数值类型: 整型(integers), 浮点型(floating point numbers), 以及 复数(complex numbers)。此外,布尔是整数的子类型。


数值类型说明

整数由1-n个数字字符表示,整数的类型名称是
int
,所有的整数都是类型
int
的实例;浮点数由整数部分和小数部分构成,中间用
.
连接,浮点数的类型名称是
float
,所有浮点数都是类型
float
的实例;复数由实部和虚部构成,其中虚部跟上字母
j
,复数的类型名称数
complex
,所有复数都是类型
complex
的实例。

数值的声明

在python中,数值声明的方式有2种方式,分别是字面量声明方式和使用数值类型构造函数初始化的方式。

字面量

和其它语言类似,python支持字面量方式声明数值。

对于整数,一串数字就表示1个正整数,负数则在数字前面添加
-
号表示,

# 正数
>>> 19
19
# 负数
>>> -7
-7
# 0
>>> 0
0

浮点数的字面量声明,负数同样的是前面添加
-
号来表示,

# 正浮点数
>>> 19.1
19.1
# 负浮点数
>>> -7.2
-7.2
# 0.0
>>> 0.0
0.0

复数的字面量声明,虚部用字母
j
(或者
J
)表示

>>> 1 + 2j
1 + 2j

整数默认的是按10进制进行表示的,但是字面量也可以直接声明2进制、8进制和16进制,它们分别是向整数添加
0b
0o
0x
表示。

# 2进制
>>> a = 0b10
>>> a
2
# 8进制
>>> b = 0o10
>>> b
8
# 16进制
>>> c = 0x10
>>> c
16

构造函数声明

int
函数是1个python内置函数,也是整数类型
int
的构造函数,它的作用是对传入的参数做初始化,转换成1个整数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数33——int。

# 1. 不传入参数时,得到结果0
>>> int()
0

#2. 传入整数时,返回本身;传入浮点数时,向下取整
>>> int(3)
3
>>> int(3.6)
3

# 3. 传入字符串时,默认以10进制进行转换,字符串中可以带正负符号。
>>> int('+36')
36
>>> int('-36')
-36

# 4. 传入字符串时,并指定转换进制。
>>> int('01',2)
1
>>> int('02',3)
2
>>> int('07',8)
7
>>> int('0f',16)
15

float
函数是1个python内置函数,也是浮点数类型
float
的构造函数,它的作用是对传入的参数做初始化,转换成1个浮点数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数22——float。

# 1. 不传入参数时,得到结果0.0
>>> float()
0.0

#2. 传入整数或者浮点数
>>> float(3)
3.0
>>> float(3.6)
3.6

# 3. 传入字符串时,字符串中可以带正负符号。
>>> float('+3.6')
3.6
>>> float('-3.6')
-3.6

# 4. 几个特殊的字符串
>>> float('Infinity')#无穷大
inf
>>> float('inf')#无穷大
inf

>>> float('inFinIty') #不区分大小写
inf

>>> float('+inFinIty') #正无穷
inf
>>> float('-inFinIty') #负无穷
-inf

>>> float('nan') #没有值
nan

complex
函数是1个python内置函数,也是复数类型
complex
的构造函数,它的作用是对传入的参数做初始化,转换成1个复数。根据传入的参数不同,初始化的结果也不相同。详见 Python内置函数13——complex。

# 1. 不传入参数时,得到结果0j
>>> complex()
0j

#2. 传入2个参数,分别表示实部和虚部
>>> complex(3,4)
(3 + 4j)

# 3. 传入字符串时
>>> complex('3+4j')
3.6
>>> complex('-3.6')
(3 + 4j)

支持的运算操作

常见的运算操作

整形支持以下的运算操作,按优先级升序排列

x + y
相加

x - y
相减

x * y
相乘

x / y
相除

x // y
取整除,也叫地板除

x % y
取余数

-x
取负

+x
取正,值不变

abs(x)
取绝对值

int(x)
转换成整数

float(x)
转换成浮点数

complex(re,im)
转换成复数

c.conjugate()
取复数的共轭

divmod(x, y)
返回地板除的结果和取余数的结果组成的元组

pow(x,y)
x 的y 次幂

x ** y
x 的y 次幂

其中
x // y
只支持浮点数和整数,不支持复数,除法结果向下取整。

>>> 1//2
0
>>> -1//2
-1
>>> 1//(-2)
-1
>>> (-1)//(-2)
0

# 其中1个是浮点数 结果也是浮点数
>>> 5//3
1
>>> 5//3.0
1.0

浮点数的四舍五入

python提供了内置函数float用来对浮点数进行四舍五入操作。其中有一点一定要注意,float如果不传入第2个参数,表示截断成整数。和传入0保留0位小数是不一样的。

>>> round(3.456,2)
3.46
>>> round(3.456,1)
3.5
>>> round(3.456,0)
3.0
>>> round(3.456) #不传入参数,结果是整数
3

浮点数转换成整数的几个截断方法

math
模块中,提供了另外几种将浮点数截断成小数的方法,他们分别是
trunc
截断、
floor
向下取整、
ceil
向上取整。而上面提到的
round
函数,如果不传入第2个参数,也有取整的功能。

# 导入math
import math

>>> a = 3.556
>>> b = -3.556

# 直接截断
>>> math.trunc(a)
3
>>> math.trunc(b)
-3

# 向下取整
>>> math.floor(a)
3
>>> math.floor(b)
-4

# 向上取整
>>> math.ceil(a)
4
>>> math.ceil(b)
-3

# 四舍五入取整
>>> round(a)
4
>>> round(b)
-4

浮点数的
is_integer()
方法

is_integer()
是浮动数的一个实例方法,
如果浮点数实例是整数值,则返回
True
,否则返回
False
.

>>> f1 = 3.0
>>> f1.is_integer()
True

>>> f2 = 3.14
>>> f2.is_integer()
False

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: