Python中的数值类型
Python 支持三种不同的数值类型(数字数据类型):
整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
特别说明
☆ 整数和浮点数由存在或不存在小数点区别:5是整数,而5.0是浮点数。复数以形式书写x + yj,其中x是实部,y是虚部。
☆ 整数可以是任意长度,但浮点数最多只能精确到15个小数位(第16位不准确)。
123456789123456789123456789*1000
123456789123456789123456789.0*1000
【大整数运算,在C/C++中需要自己实现,在JAVA中有BigInteger可以很快处理大整数运算。在Python中,大整数运算显得尤其简单,不用考虑溢出!】
☆ 人们习惯的是十进制(以10为底)的数字系统。计算机使用二进制(Binary,基数2),程序员使用十六进制(Hexadecimal,基数16)和八进制(Octal,基数8)的数字系统。其前缀如下表
Binary '0b'或'0B'
Octal '0o'或'0O'
Hexadecimal '0x'或'0X'
注:前缀中的0是数字零
如:0xFB + 0b10,用十进制表示为251 + 2
☆ 可以使用type()函数来判断变量或值属于哪种数据类型,并且可以使用函数isinstance()检查它是否属于特定的类型。例如:
☆ Python 数值类型转换
如果操作数之一是浮点数,则加法,减法等操作会强制整数隐式(自动)转换为浮点。
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可,这也称为强制转换。
int() 转换为一个整数,例如:
float() 转换到一个浮点数,例如:
complex(x [,y]) 为 x +yj 的复数,或将字符串或数字转换为复数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0;complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。例如:
【关于内置函数type()、isinstance()、int()、float()、complex() 详情可参见https://docs.python.org/zh-cn/3/library/functions.html 】
☆ 对于浮点数需要注意存在舍入误差,例如:
这是因为,对于浮点数几乎所有的编程语言都采用了 IEEE-745 浮点数表示法,任何使用二进制浮点数的编程语言都会有这个问题,只不过在很多语言中已经封装好了方法来避免精度的问题。Python也不例外。
在涉及浮点数的算法中,要注意不能直接用等号判断两个浮点数是否相等,这里已python为例:
在Python的math中的isclose()方法用于确定两个浮点数的值是否接近, 如果值接近则返回True,否则返回False。要使用此功能,您必须导入数学模块math。
语法格式:
math.isclose(a,b,rel_tol,abs_tol)
参数 说明
a 必需的参数, 检查紧密度的第一个值
b 必需的参数, 检查紧密度的第二个值
rel_tol=value 可选的。 相对公差。 它是值a和b之间的最大允许差。 默认值为1e-09
abs_tol=value 可选的。最小绝对公差。它用于比较接近0的值。该值必须至少为0
【decimal 模块为快速正确舍入的十进制浮点运算提供支持:
https://docs.python.org/zh-cn/3/library/decimal.html#module-decimal
Python通过其fractions模块提供涉及小数的运算:
https://docs.python.org/zh-cn/3/library/fractions.html
】
版权归原作者 软件开发技术爱好者 所有, 如有侵权,请联系我们删除。