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=1739223663-BcI8YF5lLKV1C2VMsp1KGskirl6Is9jL-0-5a1745699130862373a8c9b6ba7d12d5)
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=1739223663-tAfIRIFreMRwEA9AJQiuCFhAyzrb3Mgi-0-1eb30eb1d532920dfeb47151a548119d)
1.5.3 字符串类型
字符串是由数字、字母、下划线组成的一串字符。所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母“r”(不区分大小写)以外,与普通字符串有着几乎完全相同的语法。
【例1-3】普通字符串示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_02.jpg?sign=1739223663-zJ8xTc85TmzVKWMWHNBZogH2Ux7EDrYa-0-5049b10d99b535dfd466c2f9d271278f)
原始字符串示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_03.jpg?sign=1739223663-yOXRwPoaywqvuGbFWAv7N0Wur1RIc10g-0-d194603207aa0f6372e0144b789a1347)
Python接受单引号(')、双引号(")、三引号('''或""")来表示字符串,引号的开始与结束类型必须一致,也就是说前面是单引号,后面也必须是单引号。其中三引号可以由多行组成,这也是编写多行文本的常用语法,经常用于处理文档字符串,但在文件的特定地点,会被当成注释来处理。
【例1-4】用单引号括起来表示字符串,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_04.jpg?sign=1739223663-usDFZGpc4caOvrTASRzmXHQA0Cg6rNSo-0-1460f083bf0e2049b7f09e95df073e8d)
双引号中的字符串与单引号中的字符串用法完全相同,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/30_05.jpg?sign=1739223663-fvo69y81hNSqFIinV6eQVTEjxmZrdbbP-0-f937724c8125e3f8df823465b6246691)
利用三引号表示多行字符串,可以在三引号中自由地使用单引号和双引号,示例如下。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_01.jpg?sign=1739223663-8X8X6v6pBGV91Zyf2hI7qZ1DI6ozEFSr-0-261953234c2ccb8aa67a7bf4de190ea3)
1.5.4 列表类型
列表是任意对象的集合,所有元素都放在方括号“[]”中,元素之间使用逗号分隔,元素可以是单独的,也可以是嵌套关系。列表是一种有序的非泛型集合,内部可以加入类型不同的数据,并且使用数组下标作为索引。列表是可以修改的,对于需要不断更新的数据来说很适用。
【例1-5】列表示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_02.jpg?sign=1739223663-dod4ZFvSVJUGLq4hKf1REVffgksi67YR-0-2542691e58477811f3d91507d99a5b82)
为了更加方便地操作列表,可以使用列表函数实现列表的各种操作。
常用的列表函数示例如下。
1.修改
【例1-6】声明一个列表list,通过下标对列表list中的元素进行操作,实现对列表的内容修改。这里实现对list中元素下标为2的值进行修改。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_03.jpg?sign=1739223663-NvDNQwNnglEZSrTXjFyeqkFcIe2hRVYS-0-c7f156e78a14830cf2c0972923c91c4b)
2.append(e)
【例1-7】该函数接收一个元素作为参数,作用是向列表list中的最后一位添加指定元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/31_04.jpg?sign=1739223663-vYvQVYDQjMm3OqhwAPLLfdAN6SbEWDdz-0-d7fc4e857d242a071eab37b594303355)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_01.jpg?sign=1739223663-FiIKO9DDkiy8Y16M0ZRiwUK668C57Hcb-0-1e18e7149036521c80d2a1c62c0aac18)
3.insert(index,e)
【例1-8】该函数接收两个参数,作用是向列表list中指定的元素下标插入元素。其中,index参数表示当前插入的位置,e参数表示需要插入的元素,在插入位置后面的元素依次往后移动一位。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_02.jpg?sign=1739223663-esuFVAB4dFakKhlC4EFysrux13uAsHOJ-0-2515a3c30cc4a9c81587032e6c3a4efd)
4.remove(e)
【例1-9】该函数接收一个元素作为参数,作用是移除列表中某个值的第一个匹配项。如果有多个相同的元素,则只删除第一个。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_03.jpg?sign=1739223663-90iMuwTyP7R7SNWssxnGCDc2T6Os0BYP-0-91f399b090cb241f66a8e736ab12601e)
5.reverse()
【例1-10】该函数的作用是反向列表中的元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_04.jpg?sign=1739223663-obKdmSphmmYOWTYGvUBueR4pDTRv5qU4-0-e07d0492dc08df3deca72d00194650cd)
6.sort()
【例1-11】该函数的作用是对原列表进行排序,默认是升序。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/32_05.jpg?sign=1739223663-JTUPnqqvFGL86AfjVtfdr7r4pSyNgPC6-0-87197c1104c4321573a4eed624bb0ffa)
7.index(e)
【例1-12】该函数接收一个元素作为参数,作用是从列表中找出某个值第一个匹配项的索引位置,索引编号从0开始。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_01.jpg?sign=1739223663-TNVe8xhbcc3XRoeiPsjdrRX7WaZ1qS2R-0-d67bf99c7afb9a4b7aef0a1b338fb53c)
8.count(e)
【例1-13】该函数接收一个元素作为参数,作用是统计某个元素在列表中出现的次数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_02.jpg?sign=1739223663-Edi19ijbXdEMlziu7hSM1t4HJ8yWPJLe-0-ef7bf0e9129542750cc7b4bfe28e48ac)
9.pop()
【例1-14】该函数的作用是移除列表中的一个元素(默认是最后一个元素),并且返回该元素的值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_03.jpg?sign=1739223663-QVh9FXe35rH5SgkNLGmDESBcel6092fj-0-10fd322409698066d12a05724a6b2b42)
1.5.5 集合类型
集合类型有三个特点:无序;不重复;使用花括号表示。可以使用花括号“{ }”或者set()函数创建集合。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_04.jpg?sign=1739223663-TtCrnxYtmsQHKDUsEhWET2zpDAr5k2jJ-0-7659c1dc46fe3e7aae9bd974d19a1e08)
常用的集合函数示例如下。
1.remove(e)
【例1-15】该函数接收一个元素作为参数,作用是删除集合中指定的元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_05.jpg?sign=1739223663-IplFdx7RwZ7NBrQHeilsQjoVQIuPUI1O-0-e45bb20c812b23f47ab4e448760145a1)
2.pop()
【例1-16】该函数的作用是随机移除一个元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/33_06.jpg?sign=1739223663-6R9QfytpyM1kofnR1jDP5WtYCXvBu3EW-0-7f119b1dde44d0f9ec26bdf368b1ee6c)
3.len()
【例1-17】该函数的作用是获得集合中元素的个数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_01.jpg?sign=1739223663-7btdIssQ74nfNKE44lVR5QT3GYs5k5pi-0-b6452b102edcc5795ffe7c0e2305e1c4)
4.clear()
【例1-18】该函数的作用是清除集合中的所有元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_02.jpg?sign=1739223663-zDqh0oUC8hHL7vWemSIjzT1YNfHskXkC-0-ba2f701cce2f64eb7984fb9594fecbc1)
5.add(e)
【例1-19】该函数接收一个元素作为参数,作用是向集合中添加元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_03.jpg?sign=1739223663-eBLCj0SgtNocoQEHJJvca6SNPwh9sOfb-0-368d861b1e9c88a3424588ef6eec59c6)
6.union(e)
【例1-20】该函数接收一个集合作为参数,作用是合并两个集合。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_04.jpg?sign=1739223663-QKk64e2OBtQYUo8NOJCQLkTQwzWgozi0-0-e57d765eb48f1676c20f7c760ba7466a)
1.5.6 字典类型
字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dictionary={key:value}。通过关键字可以获得对应的值。
【例1-21】字典示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/34_05.jpg?sign=1739223663-nOqdfeiZEg5VqVq00xommcEHq760sBwk-0-ac368ec83a135e143cf0f173812b08e5)
常用的字典函数示例如下。
1.len(d)
【例1-22】该函数接收一个字典作为参数,作用是计算字典元素个数,即键的总数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_01.jpg?sign=1739223663-irhqEMw4FN9737N0dFb7BTmJ4LpI7cx8-0-70088510ca3f4b6f07e629954433e779)
2.clear()
【例1-23】该函数的作用是删除字典内所有元素。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_02.jpg?sign=1739223663-VAoFjJzIt9gRrgoOcHZ7LHQcebKO1Yxv-0-1d99d79ebda6d6907c564058db1ae67f)
3.copy()
【例1-24】该函数的作用是返回一个字典的复制。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_03.jpg?sign=1739223663-l7EnKLAnapVWYC5DhO2nhalXhrZ0QJ5l-0-12f52103ef8d9ebb0c9757e3c9c0ab58)
4.get(key,default=None)
【例1-25】该函数接收两个参数——key和默认返回值(当key不存在时),作用是返回指定键的值,如果该键不在字典中,则返回默认返回值None。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_04.jpg?sign=1739223663-USc1IFHPQ5CvTDgMpX9rN5EvFCvGOSkT-0-e9a42c6147bca49faaf2f6f04333001b)
5.keys()
【例1-26】该函数的作用是以列表形式返回字典中的所有键。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_05.jpg?sign=1739223663-UqQ117t1VBjgPuTUwtgnC5EiZv5YdvpE-0-59bf70f51331ff2dd7c548b54f1e6242)
6.values()
【例1-27】该函数的作用是以列表形式返回字典中的所有值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/35_06.jpg?sign=1739223663-s4xo1gWnswqwViE7pQKEOAibx2uJZoWR-0-78433431d0501fdc1d71a771b0a14b06)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_01.jpg?sign=1739223663-jUpW81N8ckQhuFNtPU6Nn6xkwVKU2qoN-0-e8d13231990ea8bb83c27857e6bc3e30)
1.5.7 元组类型
元组具有和列表相似的数据结构,但它一旦初始化就不能更改,速度比列表快,同时元组不提供动态内存管理的功能,元组可以用下标返回一个元素或子元组。元组和列表有两个区别:元组不能修改里面的元素;元组使用圆括号“()”表示。同样,元组也使用数组下标进行操作。由于元组不可更改,因此可以存放适用于程序生命周期内的数据。
【例1-28】元组示例。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_02.jpg?sign=1739223663-nUIagoQV0y50Fl0FKt4Ztx2I1l42FELh-0-3cab9da4decf8d0b0d90acfacf925304)
常用的元组函数示例如下。
1.len(t)
【例1-29】该函数接收一个元组作为参数,作用是计算元组元素个数。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_03.jpg?sign=1739223663-KiTjIHntXDO1lBovrFxkTerHHZIdIfJ0-0-905eba25bf47c8cee765830727127cc5)
2.max(t)
【例1-30】该函数接收一个元组作为参数,作用是返回元组中元素的最大值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_04.jpg?sign=1739223663-Oxf1ygmviKiDx06sXnblGJKU10VSwYYh-0-c5bb1011b5ab8a6d51be2fa7575eb449)
3.min(t)
【例1-31】该函数接收一个元组作为参数,作用是返回元组中元素的最小值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_05.jpg?sign=1739223663-XL44MuWEfiI5svT8wQGgnXnvEOo3RvVV-0-284882e5383fa701974f8a690b4eb5fe)
4.tuple(list)
【例1-32】该函数接收一个列表作为参数,然后将该列表转换为元组。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/36_06.jpg?sign=1739223663-pPvPDrA8ivWUIq7u3q15NEJf5A6wyHwF-0-ea6153dd604aadf65e8374fb3d8339f3)