计算机二级考试(Python)__数字类型

Python提供三种数字类型:整数、浮点数、复数,分别对应数学中的整数、实数、复数

1、整数类型

默认情况,整数采用十进制,其他进制需要使用引导符表示,如二进制引导符为0b,八进制为0o,十六进制为0

如:1010、-1010、0b1010、0o1010、0x1010

理论上,整数的取值范围不受限制,只取决于计算机的存储大小

程序处理时,无论采用什么进制,都采用相同格式存储数值。且不同进制之间可以直接运算,输出结果默认为十进制。

2、浮点数

浮点数两种表示方法:十进制表示法和科学计数法。除十进制外,浮点数没有其他的进制表示法。

任何数据在计算机中均以二进制形式存储,浮点数也是。

Python浮点数数值范围和小数精度受不同计算机系统限制,但除了高精度科学计算以外,浮点数的范围和精度被认为是足够可靠的,所以也一般认为浮点数的范围和精度没有限制。

整数的运算精度比浮点数高。

扫描二维码关注公众号,回复: 14459380 查看本文章
#同样数值大小的整数和浮点数,其幂运算结果京都不同
>>> pow(101,32)
13749406785310970541622913505711040449564178320493809360964963201
>>> pow(101.0,32)
1.374940678531097e+64

浮点数中还存在一个重要的精度问题,即“不确定尾数”问题。

>>> 0.1+0.2
0.30000000000000004
#在此例中,0.1+0.2≠0.3

0.1在计算机内部的二进制表示为:

    0.00011001100110011001100110011001100110011001100110011010

在上述例子中,受限于计算机表示浮点数使用的存储库宽度,浮点数0.1并不完全等于0.1,而只是二进制下最接近0.1的数。

因此计算0.1+0.2时,实际上是最接近0.1和0.2的两个书相加,产生的数接近0.3,但并不一定是最接近0.3的书。

反映到十进制上来,就是0.3后面多了一个位数。至于位数具体是多少,对于人是“不确定”的。这是程序设计的共性问题。

不确定尾数会对判断产生干扰,如:

>>> 0.1+0.2==0.3
False

使用round(x,d)函数去除不确定尾数,参数x为要去尾数的浮点数,参数d为要保留的小数位数,用法如下:

>>> round(0.1+0.2,2)==0.3
True

3、复数类型

Python语言中,复数可以看作是二元有序试数对(a,b),表示a+bj,其中a为实部,b是虚部。虚数部分用“J”或“j”表示,任何时候都不可以省略。J表示Python中的一个变量。

复数类型中实部和虚部都是浮点数类型。

对于复数z,可以使用z.real和z.imag分别获得她的实数部分和虚数部分。

猜你喜欢

转载自blog.csdn.net/qq_40721085/article/details/113629501