Python 3爬虫、数据清洗与可视化实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Python数据类型

Python中拥有6大数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、sets(集合)、dictionary(字典)。

1.3.1 数字

(1)数字类型

Python 3支持4种类型的数字:int(整数类型)、float(浮点类型)、bool(布尔类型)、complex(复数类型)。在Python3中可以使用type()函数来查看数字类型,如下所示。

a=1

b=3.14

c=True

print(type(a))

print(type(b))

print(type(c))

输出结果<class 'int'>

输出结果<class 'float'>

输出结果 <class 'bool'>

(2)Python3所支持的运算类型包括加法、减法、除法、整除、取余、乘法和乘方。

        print((3+1))    #加法运算,输出结果为4
        print((8.4-3))  #减法运算,输出结果为5.4
        print(15/4)    #除法运算,输出结果为3.75
        print(15//4)    #整除运算,输出结果为3
        print(15%4)    #取余运算,输出结果为3
        print(2*3)     #乘法运算,输出结果为6
        print(2**3)    #乘方运算,输出结果为8

1.3.2 字符串

1.字符类型

字符串就是在单引号、双引号和三引号之间的文字。单引号示例:print('welcome to hangzhou'),其中所有的空格和制表符都照原样保留。单引号与双引号的作用其实是一样的,但是当引号里包含单引号时,则该引号需使用双引号,例如:print("what's your name? ")。三引号可以指示一个多行的字符串,也可以在三引号中自由使用单引号和双引号,如下所示。

        print('''Mike:Hi, How are you?
        LiMing:Fine, Thank you! and you?
        Mike:I'm fine, too! ''')

2.字符串的表示方式

如果要在单引号字符串中使用单引号本身,在双引号字符串中使用双引号本身,则需要借助于转义符(\),如下所示。

        print('what\'s your name? ')

输出结果如下。

        what's your name?

注意:在一个字符串中,行末单独的斜杠号表示下一行继续,而不是开始写新的一行(详见1.2.2节),另外可以使用双反斜杠(\\)来表示反斜杠本身,而\n表示换行符。

如果想要指示某些不需要使用转义符进行特别处理的字符串,那么需要指定一个原始字符串。原始字符串通过给字符串加上前缀r或R的方式指定,比如需要原样输出\n而不是令其换行,则代码如下。

        print(r"Newlines are indicated by \n")

输出结果如下。

        Newlines are indicated by \n

3.字符串的截取

字符串的截取格式如下所示。

      字符串变量[start_index:end_index+1]

此处解释下为什么加1:字符串的截取从start_index开始,到end_index结束,也就是大家常理解的左闭右开,如下所示。

        str='Lingyi'
        print(str[0])   #输出结果为L
        print(str[1:4])#输出结果为ing
        print(str[-1])  #输出结果为i

4.字符运算

尝试下面的代码:

        num=1
        string='1'
        print(num+string)

此时,运行程序会报错,错误提示如下所示,为什么呢?

        TypeError: unsupported operand type(s) for +: 'int' and 'str'

字符串(string)只是Python中的一种数据类型,下面的语句在赋值的时候右侧用了单引号,数据类型是字符串(string)。

        string='1'

下面语句的数据类型为整型(integer)。

        num=1

不同的数据类型之间是不能进行运算的,但是,不同数据类型可以相互转换,以上代码通过修改后就可以正常运行,修改后的代码如下。

        num=1
        string='1'
        num2=int(string)
        print(num+num2)

注意:“+”号用在字符串中间是连接符,用在数值中间是运算符:int()是将括号中的数值或者文本转换成整型数据类型。

运行后,即时窗口中打印的结果是2,如图1-15所示。

图1-15

四则基础运算如下。

      a=1
      b=2
      c=a+b
      print(c)

因为相加的双方是数值型,此时“+”号是运算符,运行结果如下。

      3

相加的双方是字符型数据,此时“+”号是连接符。

      a=1
      b=2
      c='a'+'b'
      print(c)

运行结果如下。

      ab

1.3.3 列表

(1)列表格式

Python列表是任意对象的有序集合,列表写在中括号[]里,元素之间用逗号隔开。这里的任意对象,既可以是列表嵌套列表,也可以是字符串,如下所示。

        list=["Python",12, [1,2,3],3.14, True]
        print(list)#运行结果为['Python', 12, [1, 2, 3], 3.14, True]

(2)列表的切片

每个list(list是笔者自定义的变量)中的元素从0开始计数,如下代码可以选取list中的第一个元素。

        list=[1,2,3,4]
        print(list[0])

运行结果如下。

        1

列表删除操作可以使用remove方法,只需要在变量名字后面加个句号就可以轻松调用,PyCharm有自动联想功能,选中目标方法或者函数,按【Tab】键即可快速键入,如图1-16所示。

图1-16

以下代码用于删除第3个元素,并用print将结果打印出来。其中remove方法用于删除列表的元素。

        list.remove(3)
        print(list) # 运行结果是[1, 2, 4]

1.3.4 元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间则用逗号隔开,如下所示。

        tuple=['abc',76, 'ly',898,5.2]
        print(tuple[1:3])

运行结果如下。

        [76, 'ly']

1.3.5 集合

集合(set)是一个无序不重复元素的序列,可以使用大括号{}或者set()函数创建集合。需要注意的是,一个空集必须使用set()函数创建而不能使用大括号{},因为大括号{}是用来创建空字典的,如下所示。

        age={18,19,18,20,21,20}
        print(age)

运行结果如下。

        {18,19,20,21}

1.3.6 字典

字典是一种可变容器模型,且可存储任意类型对象,用{}标识。字典是一个无序的键(key)值(value)对的集合,格式如下所示

        dic = {key1 : value1, key2 : value2 }

接下来建立一个字典,代码如下。

        information={
            'name':'liming',
            'age':'24'
        }
        print(information)

运行结果如下。

        {'name': 'liming', 'age': '24'}

其中name是一个key(键), liming是一个value(值)。

字典增加数据时,可以使用下面的方法。

        information['sex']='boy'
        print(information)

运行结果如下。

        {'name': 'liming', 'age': '24', 'sex': 'boy'}

字典删除数据时,可以使用del函数,代码如下。

        del information['age']
        print(information)

运行结果如下。

        {'name': 'liming', 'sex': 'boy'}