![Python程序设计应用教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/751/31729751/b_31729751.jpg)
2.1 Python数据类型
计算机程序可以处理各种数值,除此之外,还可以处理文本、图形、音频、视频、网页等各种各样的数据。不同的数据需要定义不同的数据类型。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00022001.jpg?sign=1739515157-SMVbT1zXgn2Wx3NN6zvvpFSDXMBmj6q2-0-d589b8e87dc436a8e99b72f83120b7bb)
数据类型
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=1739515157-DIonuOJzRVKJrQ4ADlAftU9kSAHaRK04-0-d579c7e926eda30691d56d17fb9330ef)
Python访问子字符串,可以使用方括号来截取字符串。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023001.jpg?sign=1739515157-iTAC3bPwlOmcURNoIiECUtwYXRScxPOc-0-49aa4ef635aa0a5ed06ddba3c2e55251)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023002.jpg?sign=1739515157-FWiy8ac8zOwu9mjATg3sozL0OXF2fCD8-0-f4607ae9ef34d0e5495a56284e6bb69a)
说明:切片是字符串(或序列等)后跟一个方括号,方括号中有一对可选的数字,并用冒号分隔,如[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=1739515157-vzeuleJIbBIhhGSGL6w9k5gZAdjEUVrY-0-987f1709f0e0d3816de28e533ff38959)
3.字符串运算符
Python字符串运算符如表2-2所示。实例中变量a值为字符串"Hello",变量b值为字符串"Python"。
表2-2 Python字符串运算符
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00023004.jpg?sign=1739515157-yEBBLboHyOOImvDSOMwESFLphcbK8Vcw-0-e30dc69f3aa4cb5deb733ccc661b4122)
4.字符串格式化
Python支持格式化字符串的输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到有字符串格式符的模板中。
在Python中,字符串格式化使用与C语言中printf()函数类似的语法。例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024001.jpg?sign=1739515157-sGM1czPaRD5KPFqkjJt8S0pYc1jhhegY-0-7ed11ef130f002fc49d054ab66df5c87)
Python用一个元组将多个值传递给模板,每个值对应一个字符串格式符。上例将'xmj'插入到%s处,41插入到%d处。所以输出结果为:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024002.jpg?sign=1739515157-OWRshwup3gr5a2dkwd5rPvozsaODQpLM-0-322ceab2d112d14a3ad67f0fcf2c1255)
Python字符串格式化符号及其描述如表2-3所示。
表2-3 Python字符串格式化符号及其描述
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024003.jpg?sign=1739515157-I3LmDRdWgslnctQkrYPhsmMnX6SQjw30-0-d32436f73e70a66b333064211120562c)
字符串格式化举例:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024004.jpg?sign=1739515157-p0NNfWwfwXjrpnJxbdyGSZaEDA4xxP1C-0-276eaf6a4268b8976b329a74c5e695ea)
程序运行结果:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00024005.jpg?sign=1739515157-w3rIGJ7KeiQvgPvypB9lhs9FbBhLd3i5-0-5d37b185c2d6357e0dd71ca1964b8111)
2.1.3 布尔类型
Python支持布尔类型的数据,布尔类型只有True和False两种值,但是布尔类型有以下几种运算:
(1)and(与运算):只有两个布尔值都为True时,计算结果才为True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025001.jpg?sign=1739515157-57LPfqI9WHZm7XPFc9vEE3D5U8QBkOoo-0-3a4db610cff9d936e7b41da3adf691da)
(2)or(或运算):只要有一个布尔值为True,计算结果就是True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025002.jpg?sign=1739515157-plg4dgUbHK7N6bEKrveNNEb8Rz5YCsa8-0-042d7681c434672473a1030f159104f3)
(3)not(非运算):把True变为False,或者把False变为True。
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00025003.jpg?sign=1739515157-X7fdKdu4uzQ0Ww6GqgfOyqKbXcAchq9m-0-7484172fb91e42571e5c507ef0100388)
布尔运算在计算机中用来做条件判断,根据计算结果为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=1739515157-92WqCN3Y7hBsrW5Cchl9OYi7n3gXlIlL-0-74dfe09858189872cc0844ea00750131)
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=1739515157-5R8hcrcB3kT2sI0fbVSVCj5X2tC3Wwhq-0-a5b8c80aa219317809089da6edbe3473)
续表
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00026001.jpg?sign=1739515157-6fFxetHvVJ5LcCFtxqnormwQnM7Lb9BJ-0-2f87e1928863cc63af94c6b5351e9d91)
例如:
![](https://epubservercos.yuewen.com/596AA5/17180253805312106/epubprivate/OEBPS/Images/img00026002.jpg?sign=1739515157-WO0qGe7Rlmif2JKsZSisZIdYo2j3U7ZQ-0-9c5770ae81438fba34e6b3c736727f6d)