![2b028ec29ff4c6e5791d0047b6c2b55c.png](https://i-blog.csdnimg.cn/blog_migrate/55fb3d914cc0cf8a1ae37620f3168d73.jpeg)
计算机对数字的识别和处理只有两个要求:确定性和准确性。
首先,学习数字类型,python提供了3种数字类型:整数,浮点数,复数,为分别对应数学中的整数,实数和复数。
![bfcb4177a74b054b90b1114e2464128f.png](https://i-blog.csdnimg.cn/blog_migrate/aaa7de339a13c09af552696bf9238263.png)
整数类型:和数学里的整数一致
整数类型分四种进制表达:十进制,二进制,八进制和十六进制。
![b34a530c4b225bb0ea51c2ceeb1fae4a.png](https://i-blog.csdnimg.cn/blog_migrate/68f91517f7e2b45abb7108532dd683d8.png)
如下图所示,二进制以0b引导,八进制以0o引导,十六进制以0x引导,大小写字母均可使用。
进制种类 | 引导符号 | 描述 |
十进制 | 无 | 默认情况:10 |
二进制 | 0b 或 0B | 由字符0和1组成:0b010 |
八进制 | 0o 或 0O | 由字符0到7组成:0o123 |
十六进制 | 0x 或 0X | 由字符0到9、a到f、A到F组成,不区分大小写:0x9a |
整数类型在理论上的取值范围是±无穷大,实际上取值范围受限于python程序的计算机内存大小(日常计算已经足够),举例如下:
我们使用pow()来测试最大值,他的表达式是:
pow(x,y) #计算x的y次方
我们用pow( )写两个代码运行一下看看:(数字太长显示不完)
![5faab969130e129acc818323e2d46e15.png](https://i-blog.csdnimg.cn/blog_migrate/f61a0f36aa2da849eaa5dbe189cd9b22.png)
![91bb3317f8870e03502ebfe777a05ee4.png](https://i-blog.csdnimg.cn/blog_migrate/a75b366aaa9812f231bd5000591950c3.png)
浮点型:带有小数点及小数的数字
Python中的浮点数有以下三点需要注意的:
表达方法有两种:第一种:0.07,0.34,1.45,还可以用科学计数法表示
使用字母e或E作为幂的符号,以10为基数,格式如下:
![faf959f30b0e8be08337f99fa6f1de34.png](https://i-blog.csdnimg.cn/blog_migrate/949e0411e59406bbfc7f9bc4789318c1.png)
例如:2.0e-1结果是0.2 3.3e-3结果是0.0033
取值范围:浮点数取值范围和小数精度都存在限制,但是常规计算可以忽略,浮点数取值范围数量级约是:
![82cf813d51f1ae473f09911dd0c956ec.png](https://i-blog.csdnimg.cn/blog_migrate/b8070a00ffa52707440667fcf321e6b1.png)
精度限制:精度既然不是100%,就存在不确定尾数,不确定尾数不是BUG,是二进制转换过程中产生,很多编程语言都有。为了验证精度,分别测试程序0.1+0.3和0.1+0.2结果如下图:
![655ccb15fc33b1e2e368b4331a7f4fc0.png](https://i-blog.csdnimg.cn/blog_migrate/78eeccca0bafc76635726ef3c897446f.png)
0.1+0.3显示等于0.4,为什么没有不确定尾数呢?是因为最末尾数是0,如果再显示几位数,就会显示了。
![501ef261bf0530ff2995767620761f8c.png](https://i-blog.csdnimg.cn/blog_migrate/0f862fa28ef86aa5a58654b26c8a7183.png)
小伙伴们是不是发现了,小数只保留到小数点后16位,在使用科学计数法时,2e-4结果会显示成0.0002,小数点后达到5位,输出结果会变成科学计数法。
不确定尾数对我们有没有影响呢:我们再测试一段代码如下:
![976bc58087ee972589dfe1498a265521.png](https://i-blog.csdnimg.cn/blog_migrate/52249e7af4d004c2c7ee59a05009e6e3.png)
由此可以看出,当我们需要0.1+0.2==0.3时,代码却保错误,这时候需要引入一个函数round( ),使用格式如下:
round(x,d) #对x四舍五入,d是需要保留的小数位数
我们再以上面的例子使用round( )运行一下看看效果:
![7276b0fcea53683d69ffe8075b1c1b57.png](https://i-blog.csdnimg.cn/blog_migrate/4090268801120acbe2de5c0ae57cf892.png)
最难也是最不常用的复数来了,在上一节已经了解了复数的由来,python和数学上的复数是一样的,只不过python的虚数用的是j,数学上的虚数用的是i。
我们重点需要掌握复数的实部和虚部就可以了,也可以用以下两个函数调用:
z.real获得实部 z.img 获得虚部
实例如下:
![cbd480d27151395cc2414587266b6ab5.png](https://i-blog.csdnimg.cn/blog_migrate/20d9180d645210b84065d0a63aec4bf5.png)
数字类型学习完了,再学习运算操作符和运算函数就会很容易了。
数值运算操作符是完成运算的一种符号体系。
![f2b1f6b3598a86b6c02f24b9d6239b41.png](https://i-blog.csdnimg.cn/blog_migrate/80b337c90dd534dd3e45e6eef8d7e206.png)
![ae1c8dfeed78ecaa0b07cc1499b4f757.png](https://i-blog.csdnimg.cn/blog_migrate/d6390d8133a3d7fa98864b066578f2e2.png)
![34839161751d55a0a0e844b9b57fd1b6.png](https://i-blog.csdnimg.cn/blog_migrate/6a0b48fb09b1483db6a1fce1626347d5.png)
需要特别注意的是,在整数,浮点数和复数同时运算是,生成的结果为最宽的类型,优先顺序如下:
![2efb1cc65511e2eb221ac72c1a68d4f0.png](https://i-blog.csdnimg.cn/blog_migrate/cb3fa97cb3a3ca4432cbcbd82292d675.png)
数值运算函数:一些以函数形式提供的数值运算功能(以后会经常遇到)
![38fe0d00b28d1cbd2eaca04fd967e112.png](https://i-blog.csdnimg.cn/blog_migrate/0de706e7d6b5592259a443280d381fe5.jpeg)
![78c9a726c58b36e5dd9802c3bcd9cba5.png](https://i-blog.csdnimg.cn/blog_migrate/b75f540955cfa5c6e295c18aee221fa8.jpeg)
![ec5b988665250d0523b4e8e47e74372e.png](https://i-blog.csdnimg.cn/blog_migrate/a8f27d75d076297cc018d4ade2e2a6ee.jpeg)
最后,再增加一个布尔值的运算,即真和假,python中是False和True,首字母必须是大写,真表示1,假表示0,通过以下代码可以看出:
![fa3eeae269d9207c57f5e263a135ad39.png](https://i-blog.csdnimg.cn/blog_migrate/352defd04cffc69cdbdc13be1ddadf82.png)