机器学习:基于OpenCV和Python的智能图像处理
上QQ阅读APP看书,第一时间看更新

2.1 数据类型

根据数据所描述的信息,可将数据分为不同的类型,即数据类型。对于高级程序设计语言来说,其数据类型都明显或隐含地规定了程序执行期间一个变量或一个表达式的取值范围和在这些值上所允许的操作。

Python语言提供了一些内置的数据类型,在程序中可以直接使用。Python的数据类型通常包括数值型、布尔型、字符串型等最基本的数据类型,这也是一般编程语言都有的一些数据类型。此外,Python还拥有列表、元组、字典和集合等特殊的复合数据类型,这是Python的特色。

2.1.1 数值类型

数值类型一般用来存储程序中的数值。Python支持三种不同的数值类型,分别是整型(int)、浮点型(float)和复数型(complex)。

1.整型

整型就是我们常说的整数,没有小数点,但是可以有正负号。在Python中,可以对整型数据进行加(+)、减(-)、乘(*)、除(/)和乘方(**)的操作,如下所示。

    >>>2 + 3
    5
    >>>5 - 3
    2
    >>>2 * 3
    6
    >>>6 / 2
    3
    >>>2 ** 3
    8

另外,Python中还支持运算次序,可以在同一个表达式中使用多种运算,还可以使用括号来修改运算次序,如下所示。

    >>>(2 + 3) * 2
    10
    >>>2 + 3 * 2
    8


注意 在Python 2.x版本中有int型和long型之分。其中,int表示的范围在-231~231-1之间,而long型则没有范围限制。在Python 3.x中,只有一种整数类型,范围没有限制。


2.浮点型

Python将带小数点的数字都称为浮点数。大多数编程语言都使用这个术语,它可以用来表示一个实数,通常分为十进制小数形式和指数形式。相信大家都了解5.32这种十进制小数。指数形式的浮点数用字母e或者(E)来表示以10为底的小数,e之前为整数部分,之后为指数部分,而且两部分必须同时存在,如下所示。

    >>>65e-5
    0.00065
    >>>6.6e3
    660.0

对于浮点数来说, Python 3.x提供了17位有效数字精度。

另外请注意,上述例子的结果所包含的小数位数是不确定的,如下所示。

    >>>5.01 *10
    50.000999999999998

这种问题存在于所有的编程语言中,虽说Python会尽可能找到一种精确的表示方法,但是由于计算机内部表示数字的方式,在一些情况下很难做到,然而这并不影响计算。

3.复数型

在科学计算中经常会遇到复数型的数据,鉴于此,Python提供了运算方便的复数类型。对于复数类型的数据,一般的形式是a+bj,其中a为实部,b为虚部,j为虚数单位,如下所示。

    >>>x = 5 + 8j
    >>>print(x)
    (5+8j)

在Python中,可以通过.real和.imag来查看复数的实部和虚部,其结果为浮点型,如下所示。

    >>>x.real
    5.0
    >>>x.imag
    8.0

2.1.2 字符串类型

在Python中可以使用单引号、双引号、三引号来定义字符串,这为输入文本提供了很大便利,其基本操作如下。

    >>>str1 = "hello Python"
    >> print(srt1)
    Hello Python
    >>>print(str1[1])          #输出字符串str1的第二个字符
    e
    >>>str2 = "I'm 'LiHua'"    #在双引号的字符串中可以使用单引号表示特殊意义的词
    >>>print(str2)
    I'm 'LiHua'

在Python中,使用单引号或者双引号表示的字符串必须在同一行表示,而三个引号表示的字符串可以多行表示,这种情况多用于注释,如下所示。

    >>>str3 = """hello
    Python! """
    >>>print(srt3)
    Hello Python!

在Python中不可以对已经定义的字符串进行修改,只能重新定义字符串。

2.1.3 布尔类型

布尔(bool)类型的数据用于描述逻辑运算的结果,只有真(True)和假(False)两种值。在Python中一般用在程序中表示条件,满足为True,不满足为False,如下所示。

    >>>a = 100
    >>> a < 99
    False
    >>>a > 99
    True