python之数字类型

1. 支持类型

python支持多种数字类型:整形,长整型,布尔型,双精度浮点型,十进制浮点型,复数
注意:给数字对象重新赋值,实际上并没有更新该对象的原始数字(数字对象immutable),只是重新生成一个新的数值对象,并指向它。

 

复数

>>> aComplex = -3.1-4.2j
>>> aComplex
(-3.1-4.2j)
>>> aComplex.real
-3.1
>>> aComplex.imag
-4.2
>>> aComplex.conjugate()
(-3.1+4.2j)

布尔型
对于值为零的任何数字或空集(空列表、空元组和空字典等)在 Python 中的布尔值都是 False。

 

2. 运算符

加法
python支持不同的数值类型相加,遵循转换规则:整数转为浮点数,非复数转为复数。
数字类型间的转换是自动的,但可以通过 coerce() 内建函数来明确指定对某种数据进行特殊类型转换

除法

>>> 1 / 2
0
>>> 1.0 / 2.0
0.5 # 传统除法
>>> 1.0 // 2.0
0.0 # 地板除
>>> from __future__ import division # 导入真正除法
>>> 1 / 2
0.5

位运算:取反(~),按位 与(&), 或(|) 及 异或(^) 及左移(<<)和右移(>>)

 

 

 

3. 内建函数与工厂函数

支持标准类型内建函数 cmp(), str() 和 type()

数值类型函数

转换工厂函数

bool(obj)
int(obj, base=10)
long(obj, base=10)
float(obj)
complex(str) or complex(real, imag=0.0)

>>> bool('hello')
True
>>> int('2015')
2015
>>> long(2015)
2015L
>>> float(2015)
2015.0
>>> complex(2015)
(2015+0j)
>>> complex(2015, 5)
(2015+5j)

功能函数

abs(num)
coerce(num1, num2)            将num1和num2转换为同一类型,然后返回一个tuple
divmod(num1, num2)          返回一个tuple(num1/num2, num1%num2)
pow(num1, num2, mod=1)   取num1的num2次方,如果提供mod参数,则再对mod进行取余运算
round(fit, ndig=0)                接受浮点数并进行四舍五入,保留ndig位小数

>>> abs(-1)
1
>>> abs(3+4j)
5.0
>>> coerce(1.5, 3)
(1.5, 3.0)
>>> coerce(3+4j, 5)
((3+4j), (5+0j))
>>> divmod(10, 3)
(3, 1)
>>> divmod(10, 2.5)
(4.0, 0.0)
>>> divmod(3+4j, 1+2j)
((2+0j), (1+0j))
>>> pow(2, 3)
8
>>> pow(3+4j, 2)
(-7+24j)
>>> round(2.4)
2.0
>>> round(-2.4)
-2.0
>>> round(-2.17, 1)

 

仅用于整数(标准整数、长整数)的函数

进制转换

oct(): 转换为八进制,返回字符串
hex(): 转换为十六进制,返回字符串
>>> oct(8)
'010'
>>> hex(16)
'0x10'

ASCII转换

>>> ord('a')
97
>>> chr(97)
'a'

 

 

 

2015-05-24

posted @ 2015-05-24 23:33  whu.yt  阅读(339)  评论(0编辑  收藏  举报