购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 Python的数值数据类型

Python的数值数据类型有整数(int)、浮点数(float)与布尔值(bool)。下面逐一说明这些数值类型的用法。

2.2.1 整数

整数数据类型用来存储不含小数点的数据,与数学上的意义相同,如-1、-2、-100、0、1、2、100等。Python 2.x中的整数有int(整数)和long(长整数)两种类型,但Python 3.x之后就只有int整数类型,Python的数值处理能力相当强大,基本上没有位数的限制,只要硬件CPU可以支持,再大的整数都可以处理。

有时为了可读性的需要,我们可以使用不同的数字系统来表示整数值,例如存储数据的内存地址就经常是以十六进制来表示的。整数包含正整数或负整数,除了用十进制(decimal)来表示外,也可以用二进制(binary)、十六进制(hexadecimal)、八进制(octal)来表示,只要分别在数字之前加上0b、0x、0o指定进制系统即可。表2-1所示是整数的一些例子。

表2-1

2.2.2 浮点数

浮点数(floating point)数据类型指的是带有小数点的数字,也就是数学上所指的实数(real number)。除了一般小数点的常规表示方法外,也可以使用科学记数法以指数形式表示,例如6e-2,其中6称为有效数,-2称为指数。表2-2所示都是合法的浮点数表示方式。

表2-2

计算机中的数字是采用IEEE 754标准规范来存储的,IEEE 754标准的浮点数并不能精确地表示小数,举例来说:


num = 0.1 + 0.2

得到的num并不等于0.3,而是0.30000000000000004。这不是Python独有的问题,所有的程序设计语言对浮点数运算都有精确度的问题,因此进行浮点数运算时必须特别小心。下面提供两个小数运算的方法供读者参考。

·使用decimal模块进行小数运算

decimal模块是Python标准模块库,使用它之前需要先用import指令导入这个模块,而后才能使用。正确导入这个模块之后,我们就可以使用decimal.Decimal类来存储精确的数字,如果参数为非整数,就必须以字符串形式传入参数,例如:


import decimal
num = decimal.Decimal("0.1") + decimal.Decimal("0.2")

这样运算后得到的结果就会是0.3。

·使用round()函数强制小数点的指定位数

round(x[,n])是内建函数,会返回参数x最接近的数值,n用来指定返回的小数点位数,例如:


num =  0.1 + 0.2
print( round(num, 1) )

上面的程序语句是将变量num取到小数点后1位,因此会得到0.3的结果。

2.2.3 布尔值

布尔数据类型(bool)是一种表示逻辑的数据类型,是int的子类,只有真值(True)与假值(False)。布尔数据类型通常用于程序流程控制中的逻辑判断。我们也可以采用数值“1”或“0”来代表真值或假值。表2-3所示为一些数据类型表示为假值的情况。

表2-3

在Python语言中,必须是相同的数据类型才能直接进行运算,例如字符串与整数不能直接相加,必须将字符串转换为整数,如果参加运算的都是数值类型,那么Python会自动进行类型转换,而不需要指定强制转换类型,例如:


num = 5 + 0.3   #结果num=5.3 (浮点数)

Python会自动将整数转换为浮点数再进行运算。另外,布尔值也可以当成数值来运算,True代表1,False代表0,例如:


num = 5 + True  #结果num=6 (整数)

如果想把字符串转换为布尔值,可以通过bool函数来进行转换。在下面的范例程序中使用print()函数来显示布尔值。

【范例程序:bool.py】转换布尔类型


01        print( bool(0) )
02        print( bool("") )
03        print( bool(" ") )
04        print( bool(1) )
05        print( bool("ABC") )

范例程序的执行结果如图2-4所示。

图2-4

程序代码解析:

·第02行:传入一个空字符串,所以返回False。

·第03行:传入含有一个空格的字符串,所以返回True。

技巧

使用布尔值False与True时要特别注意第一个字母必须大写。 SYH/tZhKJ9IGLjxutahscEhTjWEGw5w8uEO6JLqYXijaSJrnMoN64iw/SrWMHMK1

点击中间区域
呼出菜单
上一章
目录
下一章
×