3.1 数值与字符串
3.1.1 数值
Python 数字数据类型用于存储数值。数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。Python 支持三种不同的数值类型:
- 整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
- 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
- 复数(complex) - 复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
以下为数值常用函数
3.1.2 字符串
字符串是 Python 中最常用的数据类型。可以使用引号('或")来创建字符串。例如:
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。Python 访问子字符串,可以使用方括号[]来截取字符串,字符串的截取的语法格式如下:
# 索引值以 0 为从头开始的位置,-1 为从末尾的开始位置。# 注意含头不含尾变量[头下标:尾下标]
字符串运算符,变量 a="Hello",b="Python"
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中,不同的数据类型需要不同的格式符。
Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下
内建函数
函数名 | 功能描述 |
len(str) | 返回字符串的长度 |
str.lower() | 将字符串中的所有字符转换为小写 |
str.upper() | 将字符串中的所有字符转换为大写 |
str.capitalize() | 将字符串的第一个字符转换为大写,其余字符转换为小写 |
str.title() | 将字符串中的每个单词的首字母转换为大写,其余字符转换为小写 |
str.strip() | 删除字符串两端的空白字符(包括空格、制表符和换行符) |
str.lstrip() | 删除字符串左侧的空白字符 |
str.rstrip() | 删除字符串右侧的空白字符 |
str.replace(old, new) | 将字符串中的old子串替换为new子串 |
str.split(sep) | 使用sep分隔符将字符串分割为一个列表 |
str.join(iterable) | 使用字符串将可迭代对象中的元素连接成一个新字符串 |
str.find(sub) | 查找sub子串在字符串中首次出现的位置,如果未找到则返回 -1 |
str.count(sub) | 返回sub子串在字符串中出现的次数 |
str.startswith(prefix) | 如果字符串以prefix开头,则返回 True,否则返回 False |
str.endswith(suffix) | 如果字符串以suffix结尾,则返回 True,否则返回 False |
str.isalnum() | 如果字符串中的所有字符都是字母或数字,则返回 True,否则返回 False |
str.isalpha() | 如果字符串中的所有字符都是字母,则返回 True,否则返回 False |
str.isdigit() | 如果字符串中的所有字符都是数字,则返回 True,否则返回 False |
str.isspace() | 如果字符串中的所有字符都是空白字符,则返回 True,否则返回 False |
3.1.3 f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。f-string 格式化字符串以f开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。在 Python 3.8 的版本中可以使用=符号来拼接运算表达式与结果:
3.2 列表与元组
序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。Python 有 6 个序列的内置类型,但最常见的是列表和元组。
3.2.1 列表
列表都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
与字符串的索引一样,列表索引从 0 开始,第二个索引是1,依此类推。通过索引列表可以进行截取、组合等操作。
可以对列表的数据项进行修改或更新,使用 append() 方法来添加列表项,如下所示:
可以使用 del 语句来删除列表的的元素,如下实例:
列表操作符
列表函数
函数名 | 功能描述 |
len(list) | 返回列表的长度 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 将元组转换为列表 |
list.append(item) | 在列表末尾添加一个元素 |
list.extend(iterable) | 将可迭代对象中的元素添加到列表末尾 |
list.insert(index, item) | 在指定位置插入一个元素 |
list.remove(item) | 删除列表中第一个匹配的元素 |
list.pop([index]) | 删除并返回指定位置的元素,默认为最后一个元素 |
list.clear() | 清空列表 |
list.index(item, [start], [end]) | 返回列表中第一个匹配元素的索引,可以指定搜索范围 |
list.count(item) | 返回列表中匹配元素的个数 |
list.sort(key=None, reverse=False) | 对列表进行排序,可以指定排序关键字和是否逆序 |
list.reverse() | 反转列表 |
list.copy() | 返回列表的浅拷贝 |
3.2.2 元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号( ),列表使用方括号[ ]。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
# 可以创建空元组 tup = ()# 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用tuple = ("Python",123)
元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。元组可以使用下标索引来访问元组中的值,示例:
元组中的元素值是不允许修改的,但可以对元组进行连接组合,示例:
元组中的元素值是不允许删除的,但可以使用 del 语句来删除整个元组,元组被删除后,输出变量会有异常信息
元组运算符
与字符串一样,元组之间可以使用+、+=和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
元组内置函数
函数名 | 功能描述 |
len() | 返回元组的长度 |
tuple.count(item) | 返回元组中匹配元素的个数 |
tuple.index(item, [start], [end]) | 返回元组中第一个匹配元素的索引,可以指定搜索范围 |
tuple(iterable) | 将可迭代系列转换为元组 |
3.3 字典与集合
3.3.1 字典
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号(,)分割,整个字典包括在花括号{}中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
通过 key 访问 value
添加或更新键值对
删除键值对
字典内置函数
方法名 | 功能描述 |
clear() | 清除字典中所有键值对 |
get(key, default) | 如果键存在于字典中,则返回该键的值。如果未找到,则返回默认值 |
items() | 返回字典中所有键值对的视图对象 |
keys() | 返回字典中所有键的视图对象 |
pop(key, default) | 删除指定键并返回其值,如果键不存在则返回默认值 |
values() | 返回字典中所有值的视图对象 |
update([other]) | 将一个字典的键值对更新到另一个字典中 |
setdefault(key, default) | 如果键不存在于字典中,插入键和默认值 |
3.3.2 集合
集合(set)是一个无序的不重复元素序列。集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者也可以使用 set() 函数创建集合。
# 直接使用大括号创建集合parame = {value01,value02,...}# 使用 set() 函数创建集合parame = set(value)
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
添加元素,add() 添加单个元素,update() 可以添加元素,且参数可以是列表,元组,字典等
移除元素,remove() 元素不存在会报错,discard() 元素不存在不报错
集合内置函数
函数名 | 功能描述 |
len() | 计算集合元素个数 |
clear() | 移除集合中的所有元素 |
copy() | 返回集合的一个浅拷贝 |
difference(other) | 返回两个集合的差集 |
intersection(other) | 返回两个集合的交集 |
isdisjoint(other) | 判断两个集合是否没有共同的元素 |
issubset(other) | 判断当前集合是否是另一个集合的子集 |
issuperset(other) | 判断当前集合是否是另一个集合的超集 |
union(other) | 返回两个集合的并集 |