目录
数字类型
数字 (Number) 由数字文字 (Numeric literals) 创建,或作为内置函数和运算符的结果创建。Python 支持三种不同的数字类型 (Numeric Types):int
, float
, complex
。
另外,fractions 模块包括额外的数字类型 fractions.Fraction,提供对有理数算术的支持。decimal 模块包括额外的数字类型 decimal.Decimal,用于具有用户可定义精度的浮点数。
int
整数,也可称为整型,可以用十进制、八进制、十六进制表示。py3 的整型 int 相当于 py2 的长整型 long,可以存放任意大小的整数,不存在溢出问题,所以 py3 不再有 long 类型。
bool(布尔)是 int 的子类型。
>>> num = 255 # Decimal
>>> num
255
>>> num = 0o255 # Oct
>>> num
173
>>> num = 0x255 # Hex
>>> num
597
>>> num = True # bool
>>> num
True
float
浮点数,或叫浮点型,由整数和小数部分组成,也可以使用科学计数法表示(2.5e2 = 2.5 x 10^2 = 250)
Python 的浮点数通常使用C语言中的 double 实现。
sys.float_info 提供了机器浮点数的精度和内部表示的信息。
>>> num = 2.55
>>> num
2.55
>>> num = -2.55e10
>>> num
-25500000000.0
>>> import sys
>>> sys.float_info
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
complex
复数,由实部和虚部构成,表示为 a + bj,或 complex(a,b) , 实部a和虚部b都是浮点数。要从复数 z 中提取实部和虚部,可以使用 z.real 和 z.imag。
>>> z = 2 + 3j
>>> z.real
2.0
>>> z.imag
3.0
数字类型转换
构造函数 int()
, float()
, complex()
可用于生成特定类型的数字。
转换成 int
class int
([x]) 返回由数字或字符串 x 构造的整数对象,如果没有给出参数,则返回 0。
class int
(x, base=10) 如果 x 不是数字或给定了 base,那么 x 必须是字符串、字节或字节数组对象,表示以 base 为基数的整数。base 表示进制,可以是2, 8, 10, 16。
>>> int()
0
>>> int(2.22) # float -> int
2
>>> int('10') # str -> int (base=10)
10
>>> int('10', 16) # str -> int (base=16)
16
转化成 float
class float
([x]) 返回由数字或字符串 x 构造的浮点数。参数也可以是表示 NaN(非数字)或正负无穷大的字符串。
>>> float(2)
2.0
>>> float('2.22')
2.22
>>> float('nan') # not-a-number
nan
>>> float('inf') # positive infinity
inf
>>> float('-inf') # negative infinity
-inf
转化为 complex
class complex
([real[, imag]]) 返回值为 real + imag*1j 的复数或将字符串或数字转换为复数。如果第一个参数是一个字符串,它将被解释为一个复数,