多语言展示
当前在线:780今日阅读:176今日分享:34

python基本数据类型(整数和浮点数)

python是近年来使用最广泛的一种编程语言,不管是做web开发,还是网络爬虫,亦或是数据分析等,大家都在选择python来完成这些任务;我想最重要一点就是python学起来很简单,另一个点就是python用的地方非常多,综合起来就是性价比非常高。这节看看基本数据类型中的整数和浮点数。
工具/原料
1

python3.x,anaconda,spyder

2

decimal

方法/步骤
1

12赋值给a,使用函数type()可以查看a的数据类型为int;使用bit_length()方法可以发现a的位数是4,将a重新赋值为12345,发现a的位数变为14。如图所示

2

python的整数可以任意大(也就是说基本上不用担心计算机位数不够导致无法显示的情况)。例如,计算123456789的8次方,然后用bit_length()方法查看下位数,发现竟然有216位(二进制),如图

3

整数的加减乘除和求余运算。分别计算2和6的加减乘除和求余,同时用type()函数查看数据类型,(发现2/6结果是float,其余都是int),如图所示

4

浮点数的加法。例如0.55+0.3显示结果为0.8501,并不是我们想象中的0.85,这是因为浮点数内部是二进制表示,在形式上是一个无限系列。如图

5

浮点数运算方法探秘。首先使用as_integer_ratio()方法查看浮点数的分数表示形式。例如,0.25可以表示为1/4,是因为可以用有限的二进制表示出来,从而显示为(1,4);而0.55实际上是11/20,是不能用有限的二进制表示出来的,从而显示为(2476979795053773,4596),并不是11和20,所以出现了所看并非所想的情况,如图

6

使用decimal模块可以完成浮点数任意精确度的要求。decimal.getcontext()可以查看decimal模块的各种参数,其中prec为精确度的位数,分别使用默认的28,和修改后的6、66对比一下Decimal(1)/Decimal(11)的结果差异,最终进行求和,如图所示

7

使用decimal模块对0.55+0.3的精确度修改,为使其得到精确的结果(所看即所想),要求参数prec=2,发现结果与我们期望一致了。如图

注意事项
1

py2和py3的整数除法运算不一样,使用的时候一定要区分是2还是3

2

浮点数运算结果会因为精度不同稍有差异,如果计算过程对精度有较高要求,请使用decimal模块

3

检查一个浮点数是否是精确的,可以用as_integer_ratio方法查看分数表示形式

4

python对大小写敏感,使用时要注意

推荐信息