![大数据采集与爬虫](https://wfqqreader-1252317822.image.myqcloud.com/cover/726/33643726/b_33643726.jpg)
1.5 Python的数据类型
Python主要有六种数据类型,分别为数字(number)、字符串(string)、列表(list)、元组(tuple)、集合(sets)和字典(dictionary)。其中,数字类型又分为整型(int)、浮点型(float)、布尔型(boolean)和复数类型(complex)四种数据类型。Python是一种弱类型语言,所以变量都不需要提前声明,可以直接拿来使用。
1.5.1 整型
在Python内部对整型数字的处理分为普通整数和长整数,普通整数长度为机器位长,超过这个范围的整数就自动当成长整数处理。在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2 147 483 648~2 147 483 647;在64位机器上,整数的位数为64位,取值范围为-263~263-1,即-9 223 372036 854 775 808~9 223 372036 854 775 807。Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,如5、23、-10等。
【例1-1】整型数字示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/29_02.jpg?sign=1739516811-XpUk4BWZHrao3lUtWNsapYarGd95IDhz-0-c1624c48f97a61bfaa28728bc2587542)
1.5.2 浮点型
Python中的浮点型数字就是数学中的小数。在运算中,整数与浮点数运算的结果是浮点数。之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,如1.23e9和12.3e8是相等的。浮点数可以用数学写法,如4.56、2.34、-8.21。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e代替,如将0.000023写成2.3e-5。整数和浮点数在计算机内部的存储方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。变量在定义赋值时,只要赋值为小数,该变量就被定义成浮点型。
【例1-2】浮点型数字示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_01.jpg?sign=1739516811-rR0rcXLU6KoGfULDiU4gw68rA7X1NvI9-0-2064039f078dd4239877d84083ac1e37)
1.5.3 字符串类型
字符串是由数字、字母、下划线组成的一串字符。所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母“r”(不区分大小写)以外,与普通字符串有着几乎完全相同的语法。
【例1-3】普通字符串示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_02.jpg?sign=1739516811-I7qn23viBCeP2f4pAKhuLPKnQVdY835T-0-298540255bbc78bbb98ffaf4749f0c91)
原始字符串示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_03.jpg?sign=1739516811-7K47NydrEIXO26ToHGQjW0Lj2idgToHh-0-4b561564583775cc8a642f12d2278012)
Python接受单引号(')、双引号(")、三引号('''或""")来表示字符串,引号的开始与结束类型必须一致,也就是说前面是单引号,后面也必须是单引号。其中三引号可以由多行组成,这也是编写多行文本的常用语法,经常用于处理文档字符串,但在文件的特定地点,会被当成注释来处理。
【例1-4】用单引号括起来表示字符串,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_04.jpg?sign=1739516811-72VVY2IylUkyzgSrWkWQRZEvuwFdqTTh-0-59cd0c33d392a7af81d8b1559575e3c2)
双引号中的字符串与单引号中的字符串用法完全相同,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_05.jpg?sign=1739516811-GolQS0asDbNFWVsyV3XC6twhd68NNdhO-0-e6a22c238660f30f4122ac2e4f74d8c4)
利用三引号表示多行字符串,可以在三引号中自由地使用单引号和双引号,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_01.jpg?sign=1739516811-8Qfo3vdFAPouLGKb490mCYk0lXGmCpCp-0-5a26963c5c5275200ab2d67159dc5160)
1.5.4 列表类型
列表是任意对象的集合,所有元素都放在方括号“[]”中,元素之间使用逗号分隔,元素可以是单独的,也可以是嵌套关系。列表是一种有序的非泛型集合,内部可以加入类型不同的数据,并且使用数组下标作为索引。列表是可以修改的,对于需要不断更新的数据来说很适用。
【例1-5】列表示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_02.jpg?sign=1739516811-q9CVm4VM0MElpQ064hr6uxFV0LHppcyP-0-f3d6f38a88365096822a3b30b2ec33fa)
为了更加方便地操作列表,可以使用列表函数实现列表的各种操作。
常用的列表函数示例如下。
1.修改
【例1-6】声明一个列表list,通过下标对列表list中的元素进行操作,实现对列表的内容修改。这里实现对list中元素下标为2的值进行修改。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_03.jpg?sign=1739516811-hhX6ub0h8j92TqkPuZfcrP0nikqNRVzj-0-4c107d4b770eed41cb69b4f4e9d912f8)
2.append(e)
【例1-7】该函数接收一个元素作为参数,作用是向列表list中的最后一位添加指定元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_04.jpg?sign=1739516811-iUmYUQNzBggS7caN3pE7TZlZefqXt0j4-0-5bac4bd10e744d20bfd1be625e7544f4)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_01.jpg?sign=1739516811-fsV4qOatLdiUcEtt4sIJQ4iD1RnKXd62-0-404f06c8f003d70b8cfb1ef3c38ebece)
3.insert(index,e)
【例1-8】该函数接收两个参数,作用是向列表list中指定的元素下标插入元素。其中,index参数表示当前插入的位置,e参数表示需要插入的元素,在插入位置后面的元素依次往后移动一位。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_02.jpg?sign=1739516811-XN0iTGv5jbsxqtyAUpFosTKNCdQa40gD-0-e33461106dbf81e5b8cc85ad6c3f0928)
4.remove(e)
【例1-9】该函数接收一个元素作为参数,作用是移除列表中某个值的第一个匹配项。如果有多个相同的元素,则只删除第一个。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_03.jpg?sign=1739516811-rWjho4AvG1yjIkdXjSIOcGVrr7ACRMbg-0-f889b1fa910573799c95a97d22537309)
5.reverse()
【例1-10】该函数的作用是反向列表中的元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_04.jpg?sign=1739516811-uReU8v2ABcVhAazsRAUbsRwkqGiCB4g7-0-ddaf3cdc688a4ca27dca09539dfbd24f)
6.sort()
【例1-11】该函数的作用是对原列表进行排序,默认是升序。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_05.jpg?sign=1739516811-6R11bGY9AXsYVidPw7Uj4FfW9q9WDgoO-0-20898ed795d0c7945ef73aab49ec609e)
7.index(e)
【例1-12】该函数接收一个元素作为参数,作用是从列表中找出某个值第一个匹配项的索引位置,索引编号从0开始。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_01.jpg?sign=1739516811-6D88iJbhUBwR2oAXQoZiDzBFXTXFpYW4-0-60ea5456560b2d6b3b6f3308da0499c5)
8.count(e)
【例1-13】该函数接收一个元素作为参数,作用是统计某个元素在列表中出现的次数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_02.jpg?sign=1739516811-hRovwMYfpbI2osgs8Jqx8iTzfKtP3BIU-0-a4de0d74039d3a8091aedc3fc856dd9d)
9.pop()
【例1-14】该函数的作用是移除列表中的一个元素(默认是最后一个元素),并且返回该元素的值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_03.jpg?sign=1739516811-NKeLLgcsF9K9hXNIVTRKjXq1KdAG49KW-0-92b35a5342b2eb0e5909cf8801d651f5)
1.5.5 集合类型
集合类型有三个特点:无序;不重复;使用花括号表示。可以使用花括号“{ }”或者set()函数创建集合。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_04.jpg?sign=1739516811-JDfmKlNJjf8nQrS2tg9MP1O9y9bWm5Ep-0-f50769327fbd0b5ec972cda0bb749c77)
常用的集合函数示例如下。
1.remove(e)
【例1-15】该函数接收一个元素作为参数,作用是删除集合中指定的元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_05.jpg?sign=1739516811-xQBNP63HTGZlwoV3DxTadVCk4RqmeUBv-0-8ab68108fbc32d76d4851bb7c304a2ea)
2.pop()
【例1-16】该函数的作用是随机移除一个元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_06.jpg?sign=1739516811-BWAUmitGhxPMGfYFilmw7GLcnV7ZsDEq-0-0dcb5db0c29758e8f7596f932acb8c54)
3.len()
【例1-17】该函数的作用是获得集合中元素的个数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_01.jpg?sign=1739516811-ylascHsvGgRJercE2Chkeo8zIOhXCLcE-0-5a3e37375c459e063f22e0daffca2e06)
4.clear()
【例1-18】该函数的作用是清除集合中的所有元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_02.jpg?sign=1739516811-4LxLv1uK7Fksrkxuv2qJ0wYZFnUl8HYN-0-814922d6605ca3b83af18ecf5f579dc3)
5.add(e)
【例1-19】该函数接收一个元素作为参数,作用是向集合中添加元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_03.jpg?sign=1739516811-7s921etI1Im5ohesN7LQRaW2LD1vY7qo-0-68a02d7a0bafaf1095750b8b930c0d81)
6.union(e)
【例1-20】该函数接收一个集合作为参数,作用是合并两个集合。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_04.jpg?sign=1739516811-4QQjpaS2xItkyAJQYtWjpFGPrTyahWY4-0-62f75d21bac83798824cfc1f0e6ad107)
1.5.6 字典类型
字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dictionary={key:value}。通过关键字可以获得对应的值。
【例1-21】字典示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_05.jpg?sign=1739516811-SxH7OLR4Jw2breLVlvPYnHmEbPekMUu0-0-1426d2821a026bb55591eed7d5f02211)
常用的字典函数示例如下。
1.len(d)
【例1-22】该函数接收一个字典作为参数,作用是计算字典元素个数,即键的总数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_01.jpg?sign=1739516811-Tg77ORk2fMgQNKlCaKnFdPqhyKbjoDFM-0-6b60406fe6dd73bfb87cf3719c26c1fe)
2.clear()
【例1-23】该函数的作用是删除字典内所有元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_02.jpg?sign=1739516811-pw7K0udZXZBYCT1V6MuUi0XEb1KI2keU-0-7e7ea49ed74c17024af53baee4c090b8)
3.copy()
【例1-24】该函数的作用是返回一个字典的复制。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_03.jpg?sign=1739516811-LHezHAadCg688FQnt7TuLpmCHD7bVBgX-0-b12025d57035e9febc2a06ac13403b80)
4.get(key,default=None)
【例1-25】该函数接收两个参数——key和默认返回值(当key不存在时),作用是返回指定键的值,如果该键不在字典中,则返回默认返回值None。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_04.jpg?sign=1739516811-dDnlut9tiNyP4RCEsMFIjT9y4kT0CZQT-0-6ec0d0f1bee69d37d533a99fc2911a64)
5.keys()
【例1-26】该函数的作用是以列表形式返回字典中的所有键。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_05.jpg?sign=1739516811-OqofbGAStd9oV4QAsSy2ghdbjA8UrZ6q-0-8d959184d91c6e467251ea0f8cfb4db6)
6.values()
【例1-27】该函数的作用是以列表形式返回字典中的所有值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_06.jpg?sign=1739516811-GGsYJyFWCW2lHkYTQQYCpVGJQgrlKxsS-0-6973be5ea59ac552bf509d27a4bd54c1)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_01.jpg?sign=1739516811-9i6BP68r5BvHQtt5HiQrNti4rHIjIfru-0-046d18c4109f3ec654ddc3e6d03425cf)
1.5.7 元组类型
元组具有和列表相似的数据结构,但它一旦初始化就不能更改,速度比列表快,同时元组不提供动态内存管理的功能,元组可以用下标返回一个元素或子元组。元组和列表有两个区别:元组不能修改里面的元素;元组使用圆括号“()”表示。同样,元组也使用数组下标进行操作。由于元组不可更改,因此可以存放适用于程序生命周期内的数据。
【例1-28】元组示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_02.jpg?sign=1739516811-oaT0hFe59NJ8wgzDoyQIAw2QxJUM3Go3-0-b55a042f9ffd5a0ff2819a2b3b57579b)
常用的元组函数示例如下。
1.len(t)
【例1-29】该函数接收一个元组作为参数,作用是计算元组元素个数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_03.jpg?sign=1739516811-8M8BUpEeTsPomiGg7JpFKei4zWWzWmz7-0-50ecebf06887b8ac25f33e3f104700cc)
2.max(t)
【例1-30】该函数接收一个元组作为参数,作用是返回元组中元素的最大值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_04.jpg?sign=1739516811-CDozMm8lhMQNeMC7ljbHC2VZYf4ckovg-0-cd7f4292a7c3188b9fc2b08d245516ae)
3.min(t)
【例1-31】该函数接收一个元组作为参数,作用是返回元组中元素的最小值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_05.jpg?sign=1739516811-QsgCeDsaQF1bjHUo2iQG5dk5U7V10bNz-0-105566c7a25526a527ce5b1e8a17b734)
4.tuple(list)
【例1-32】该函数接收一个列表作为参数,然后将该列表转换为元组。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_06.jpg?sign=1739516811-1Q0TdnCdRqmYX6uV5CE4aJu8lPrlFOcz-0-61b97362b939dab7d58feb85b5b1854c)