提到数字,我们不免想到小学就接触到的1,2,3,4等等,可能你会问,这有什么可以介绍的,其实,在Python中,数字类型又在以前数学基础上有了一定的延伸,我们先来看几个包含关系。
数据类型,注意,这里说的是数据类型不是数字类型,在Python中有6个标准的数据类型,他们分别是数字、字符串、列表、元组、集合和字典。
数字类型,就是上面说到的数据类型下面的数字,它又有4种类型,分别是整数型、浮点型、复数型、布尔型,从本质上说,他们都是数字组成,因此称为数字类型。
数据类型中的字符串我们将在下一节中做出介绍,其他的将在后面的章节学习。
那我们就来看数字类型吧!
1、整数型(int)
如果你学过其他语言,比如说C语言,它们又分为长整型和短整型,然而,在Python中就给我们解决了这个问题(当然这是指Python3.X中,Python2.X还是分长短的),整数型不再分长短,具体范围的大小和我们使用的计算机硬件有关,我们日常使用中也不会超过限制,所以,就不要去纠结具体的取值范围了。
只要我们不做标识,默认情况下,Python中表示数字都是十进制,在数字前加0b或者0B表示二进制,在数字前加0o或者0O表示八进制(第一个是零,第二个是键盘上i和p之间的o),在数字前加0x或者0X表示十六进制,下面举例数字108在不同进制下的表示形式:
>>>108 #十进制108
108
>>>0b01101100 #二进制108
108
>>>0o154 #八进制108
108
>>>0x6C #十六进制108
108
2、浮点型(float)
浮点型就是用来表示小数数值,浮点型因为受计算原理等多方面的限制,可能存在不准确的情况,我们在使用时需要多加注意,例如:
>>>0.1+0.2 #简单的数字相加,可能会出现精确位数问题
0.30000000000000004
精准度的问题在解决日常问题时不是那么重要,但是在计算价格等累积较多的问题上,要引起重视,通过一些方法,如保留少的小数位数,将后面的数字去除来确保准确。
浮点型还可以用科学计数法表示,如2.2e2,就是2.2×10的平方。如果是2.2e-2,就是2.2×10的-2次幂。
>>>2.2e2 #2.2×10的2次幂
220.0
>>>2.2e-2 #2.2×10的-2次幂
0.022
3、复数型(complex)
在一些研究或者科学计算中可能会用到复数,日常程序实现使用较少,主要就是实部+虚部进行表示,如2+3j,用j表示虚部的数值。
>>>2+3j #复数
(2+3j)
>>>(2+3j)+(1+2j) #复数相加
(3+5j)
>>>(2+3j)-(1+2j) #复数相减
(1+1j)
>>>(2+3j)*(1+2j) #复数相乘
(-4+7j)
4、布尔型(bool)
布尔型只有两个值:True和False,一定要注意,首字母大写。其实布尔型是整数型的另一种形式,0表示空,什么也没有,就是False,以后我们要学到的字符串、列表、元祖、字典中,只要里面没有东西,就是空的,就是False,当然记得加上None,这个也是三个首字母需要大写的其中一个,也是代表空,其他的任何东西,都是里面含有东西或者数值的,就是True的表示形式,大家先记住,在以后的学习中慢慢会增加印象并完全明白。
5、数字间相互转换
数字间的转换分为显性转换和隐性转换,显性转换就是让一种数值类型强行转换为另一种类型,我们看下面的例子。
>>>int(9.00032) #浮点强制转换为整数型
9
>>>float(9) #整数型强制转换为浮点型
9.0
>>>bool(9) #整数型强制转换为布尔型
True
>>>bool(True) #布尔型转布尔型没有变化
True
>>>int(True) #布尔型强制转换为整数型
1
>>>float(True) #布尔型强制转换为浮点型
1.0
当然,还有数字间的隐性转换,主要是浮点型和整数型之间。
整数型 + 浮点型 = 浮点型
布尔型 + 浮点型 = 浮点型
布尔型 + 整数型 = 整数型
>>>3+3.14 #整数型和浮点型得浮点型
6.140000000000001
>>>True+3.14 #布尔型和浮点型得浮点型
4.140000000000001
>>>False+3 #布尔型和整数型的整数型
3
>>>True+3 #布尔型和整数型的整数型
4
下一段我们将着重运算符。