- Python程序设计应用教程
- 夏敏捷 张西广
- 1400字
- 2021-03-25 10:05:11
2.1 Python数据类型
计算机程序可以处理各种数值,除此之外,还可以处理文本、图形、音频、视频、网页等各种各样的数据。不同的数据需要定义不同的数据类型。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00022001.jpg?sign=1739234429-VraVj5r26UpLtKdUqIkCzqLT7BdAIuDH-0-78554ded3fb0bfadaaa03ec5943dc6c5)
数据类型
2.1.1 数值类型
Python数值类型用于存储数值。Python支持以下数值类型:
(1)整型(int):通常是整数,不带小数点,但可以有正号或负号。Python 3.5对整型是没有大小限制的,只要内存许可,整数的取值范围几乎包括了全部整数(无限大),这给大数据的计算带来便利。在Python 3.5中,只有一种整数类型int,没有Python 2.7中的long。
(2)浮点型(float):由整数部分与小数部分组成,也可以使用科学计数法表示,如2.78e2就是2.78×102=278。
(3)复数(complex):由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示。复数的虚部以字母j或J结尾,如2+3j。
数据类型是不允许改变的,这就意味着如果改变数值数据类型的值,将重新分配内存空间。
2.1.2 字符串
字符串是Python中最常用的数据类型,可以使用引号来创建字符串。Python不支持字符类型,单字符在Python中也作为一个字符串使用。Python中使用单引号和双引号表示字符串的效果是一样的。
1.创建和访问字符串
创建字符串很简单,只要为变量分配一个值即可。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00022002.jpg?sign=1739234429-CYCw4Jpyhr6kZwksR0ghb6cbFSq5B289-0-6ebc63c5c860a9c860bf62a2d058011b)
Python访问子字符串,可以使用方括号来截取字符串。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023001.jpg?sign=1739234429-AgVNihI3U6wptSRrha57kqjUKMR9O6Ww-0-3969bf2b50688029eb39df2360f2b8b7)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023002.jpg?sign=1739234429-33fb3n9V29MZKyljKSC6uNRmEpbvaWPl-0-21c281653fb94ec3c895e32dc04d94d3)
说明:切片是字符串(或序列等)后跟一个方括号,方括号中有一对可选的数字,并用冒号分隔,如[1:5]。切片操作中的第一个数(冒号之前)表示切片开始位置,第二个数(冒号之后)表示切片结束位置。
切片操作中如果不指定第一个数,Python就从字符串(或序列等)首开始。如果没有指定第二个数,则Python会停止在字符串(或序列等)尾。注意:返回的切片内容从开始位置开始,在结束位置之前结束。例如,[1:5]取第2个字符到第6个字符之前(第5个字符)的内容。
2.转义字符
需要在字符中使用特殊字符时,Python用反斜杠(\)转义字符,如表2-1所示。
表2-1 转义字符
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023003.jpg?sign=1739234429-t0FcR33qpfWUPsSgyHmywobJcBykCFir-0-068f3ffb5a3813b0b9316ee486dbd21b)
3.字符串运算符
Python字符串运算符如表2-2所示。实例中变量a值为字符串"Hello",变量b值为字符串"Python"。
表2-2 Python字符串运算符
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023004.jpg?sign=1739234429-Wf8LZgKCEAjce3KGHzRfKey6C7CVKKry-0-58a0be0d4a2ffd9739e03faffdcfcb07)
4.字符串格式化
Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到有字符串格式符的模板中。
在Python中,字符串格式化使用与C语言中printf()函数类似的语法。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024001.jpg?sign=1739234429-APHWmpI2A589UOSxtY097pCSBIbHQb8y-0-bfd88a567b3803e87b1d06f59f07fca1)
Python用一个元组将多个值传递给模板,每个值对应一个字符串格式符。上例将'xmj'插入到%s处,41插入到%d处。所以输出结果为:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024002.jpg?sign=1739234429-XAtROmfqf0XsVA7YU8dHpAGTVW6EBKLU-0-8860688e8d3c43301f691bb7f45976c6)
Python字符串格式化符号及其描述如表2-3所示。
表2-3 Python字符串格式化符号及其描述
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024003.jpg?sign=1739234429-XFEP2TQWecPWYrrNSacU7B7uMQfiN72v-0-471c18be2ad995242216ecbdac110f15)
字符串格式化举例:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024004.jpg?sign=1739234429-aEam4UPDNMxf6S1P8B5luI38uSvTH9wn-0-954c71578f9e0c6fdd4bbec329a0d4b8)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024005.jpg?sign=1739234429-uMZiXfusDTu475FCo4WmfMCeMltW0uTl-0-da064090c4afa06f39f45297003b7677)
2.1.3 布尔类型
Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:
(1)and(与运算):只有两个布尔值都为True时,计算结果才为True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025001.jpg?sign=1739234429-5b3vKX4IfCabWXaE7v6Ojae9mgjheNxD-0-12b5ff37f1962aed74af1ab5a637ec2d)
(2)or(或运算):只要有一个布尔值为True,计算结果就是True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025002.jpg?sign=1739234429-bAjwG5NbcDdAQ11OhqFU1rNbcdnG55JY-0-4cf7e62881b84a79dd0652291c30fff0)
(3)not(非运算):把True变为False,或者把False变为True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025003.jpg?sign=1739234429-p3yXZEDTTxB5UeagbdnsWhsknRfnurkL-0-ba54743895c3b2a76566adc58f6c8e17)
布尔运算在计算机中用来做条件判断,根据计算结果为True或者False,计算机可以自动执行不同的后续代码。
在Python中,布尔类型还可以与其他数据类型做and、or和not运算,这时下面几种情况会被认为是False:为0的数字,包括0、0.0;空字符串' '、"";表示空值的None;空集合,包括空元组()、空序列[]、空字典{};其他的值都为True。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025004.jpg?sign=1739234429-hgLeNRnVUFRa0scHOqF0gK99gNsQ7W1j-0-b75622daf9a310a3c50e91b6a4169d94)
2.1.4 空值
空值是Python中一个特殊的值,用None表示。它不支持任何运算,也没有任何内置函数方法。None和任何其他的数据类型比较永远返回False。在Python中未指定返回值的函数会自动返回None。
2.1.5 Python类型转换
Python类型转换函数及其描述如表2-4所示。
表2-4 类型转换函数及其描述
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025005.jpg?sign=1739234429-bbbMLDEvijJkf4J2T481a14HcTQRGREk-0-a11810024da6387305e87434ff762a36)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00026001.jpg?sign=1739234429-9rBPwg26nd0Yivvdd9r56vTdbWAzSPAC-0-aedd5f109950c3ae064eb94d9c52e24e)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00026002.jpg?sign=1739234429-0RiKkXxlNAyEIPuQXejt1wpWr91jaAGA-0-865705dd0be0c56b872e5aa1ca11c706)