- Python程序设计
- 刘瑞新 杨景花 吴广裕主编
- 1202字
- 2025-02-21 21:46:50
2.2.1 数值类型

2.2.1 数值类型
数值(Number)类型,在Python中也被称为数字类型。
1.数值类型
Python中的数值类型有4种:int(整型)、float(浮点型)、complex(复数型)和bool(布尔型)。Number类型属于不可变数据类型。
(1)int(整型)
整型数据可以是正整数或负整数,无小数点。Python 3中的整型数据只有一种,即int。在32位操作系统中,整数的位数为32位,取值范围为-231~231-1;在64位操作系统中,整数的位数为64位,取值范围为-263~263-1。
整型数据有以下4种表现形式。
1)十进制整数:平时整数的写法,使用10个数字0、1、2、3、4、5、6、7、8、9表示整数。例如,-3,0,99,10000。
2)二进制整数:以0b开头,使用2个数字0、1表示整数。例如,0b1101,0b01101011。
3)八进制整数:以0o开头,使用8个数字0、1、2、3、4、5、6、7表示整数。例如,0o67,0o235。
4)十六进制整数:以0x开头,使用16个数字0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f表示整数。例如,0x10f9,0xa5e7b。
这4种进制的数据通过函数int()、bin()、oct()、hex()转换显示。
【例2-5】 在IDLE中,以交互方式把100、99999999999999999999999999999999整数,分别用十进制、二进制、八进制和十六进制显示。在IDLE中的运行结果如图2-5所示。

图2-5 整数的显示
(2)float(浮点型)
浮点型数据由整数部分和小数部分组成,就是带有小数点的数。在计算机中用于近似表示某个实数。之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。在表示很大或很小的浮点数时必须使用科学记数法表示,把10用e替代。
【例2-6】 在IDLE中,以交互方式显示不同大小的浮点数,如图2-6所示。

图2-6 浮点数的显示
只要涉及浮点数的运算,其结果必为浮点型。float类型存放双精度的浮点数,计算后一般精确到小数点后16位,由于精度受限,进行相等性比较不可靠。
如果需要高精度,可使用decimal模块的decimal.Decimal()函数,这种类型可以准确地表示循环小数,但是处理速度较慢,适合用于财务计算。
(3)complex(复数型)
Python中的复数与数学中复数的表示形式一致,都是由实部和虚部两部分构成,并且用j或J表示虚数部分,用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型数据。例如,2+6.5j,5.81+7.69j。
(4)bool(布尔型)
布尔型数据的运算结果是常量True或False(注意True和False的首字母大写),它的值分别是1和0,可以与数值型数据运算。对于bool型的值,非0值表示布尔真,0或空值表示布尔假。例如,bool(1)、bool('abc')、bool(True)、bool("")、bool(12)表示True;bool(0)、bool("")、bool(None)、bool(False)表示False。
2.数值对象的创建
创建数值对象非常简单,只须按需要的数值类型写出该数字。例如,20、12.5、3+5j、False。
3.转换数值类型
如果要转换不同的数值类型,可以采用下面的方法。
1)通过float()函数可以将int型数据强制转换成float()型数据。
2)通过int()函数可以将float型数据强制转换成int型数据。
如果要查看数据的数据类型,使用下面的函数。
1)type()函数可以返回指定值或变量的数据类型。
2)isinstance()函数可以判断指定值或变量是否为给定的数据类型。
【例2-7】 在IDLE中,以交互方式显示数值类型及转换测试,如图2-7所示。

图2-7 数值类型及转换测试