四时宝库

程序员的知识宝库

从零开始学习python(3)——数字类型

数字类型

Python中的数字类型有三种:整数,浮点数和复数。

整数:整数的的概念就不用说了,像1,2,99999都是整数。

浮点数:可以理解为带小数点的数,如0.1,23.3432,10.0都是浮点数。

复数:复数这个概念我们应该是在高中的时候接触到的,复数由两部分组成实部+虚部,如2+3j等,Python中虚部使用j表示的。

在之前介绍运算符的文章中,我有将常用的一些运算符都给列出来,感兴趣的朋友可以前去查看,从零开始学习python(1)——表达式,语句,变量与运算符 。同时为了方便说明今天的实例,我将一些用于数字运算的符号在下面列出:

实例分析

在IDLE的交互模式下进行测试:

 >>> 2 + 3
 5
 >>> 6 - 3
 3
 >>> 4 * 3
 12
 >>> 6 / 2
 3.0
 >>> 6 // 2
 3
 >>> 6 % 2
 0
 >>> - 23
 -23
 >>> + 34
 34
 >>> 4 ** 2
 16

从结果中看到:6 / 2 = 3.0,这是为什么?明明是整数相除,为什么结果是一个浮点数,这其实是Python内部规定的,即使两个数能够整除结果依然是一个浮点数,那我如果想要一个整数的结果应该怎么办?这时候Python提供了另外一种除法即地板除法。

地板除法:符号是两个斜杠//,此时6 // 2 = 3。为了详细说明地板除法我们需要再测试几个例子:

 >>> 3 // 2
 1
 >>> -3 // 2
 -2

地板除法遵循向下取整的原则,取比目标结果小的最大整数,是不会进行四舍五入的,所以3除以2应该等于1.5的结果变成了1,而-3除以2的结果应该等于-1.5的,会取比-1.5小的最小整数,所以是-2。

接下来介绍表格中后面几个Python的内建函数(BIF),即built in function。

pow()函数是计算平方的,作用和**几乎一样,但是它还可以传递第三个参数:

 >>> pow(4, 2)
 16
 >>> 4 ** 2
 16
 >>> pow(4, 2, 5)
 1

在传入第三个参数后pow()函数返回的是:4 ** 2 % 5的值,即16除以5的余数1。

abs()函数则是返回参数的绝对值,如果参数是复数,则返回它的模:

 >>> abs(-123)
 123
 >>> abs(1 + 2j)
 2.23606797749979

复数模的计算方法是:对实部的平方加上虚部的平方的和开平方。

对于后面几个内建函数这里一并进行讨论:

 >>> int(123.1)
 123
 >>> int(123.999)
 123
 >>> float(123)
 123.0
 >>> float('123')
 123.0
 >>> complex(23, 34)
 (23+34j)
 >>> 1 + 2j.conjugate()
 (1-2j)
 >>> divmod(7, 2)
 (3, 1)
  1. 使用int()函数取整是直接截断小数部分,而仅保留整数部分,不遵循四舍五入的原则的。
  2. float()函数与int()函数一样可以对数字和字符串进行处理,需要注意的是虽然123和123.0在数值上是相等的,但是在Python的确实不同的,因为Python对于整数和浮点数的存放方法不一样。
  3. divmod(x, y)函数返回的分别是x除以y的商,和余数。需要注意的是,它并不会改变x和y的值:
>>> divmod(7, 2) 
(3, 1) 
>>> x = 7 
>>> y = 2 
>>> divmod(x, y) 
(3, 1) 
>>> x 
7 
>>> y 
2

小结

以上就是关于Python数字类型的一些简要总结,由于本人也还在学习中,如有不对还请指出,欢迎大家一起交流。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接