一. 字符串
1. 字符串的定义
# 定义字符串 字符串的元素就是指单个字符
str1 = "hello"
str1 = 'hello'
# 支持索引和遍历
print(str1[0])
for char in str1:
print(char)
# 内部使用单引号,外部使用双引号(反之亦然)
str2 = "hello 'py'thon"
print(str2)
# 一般使三对单/双引号来记录多行字符串
str3 = """hello
python
123"""
print(type(str3))
print(str3)
2. 字符串的基本操作 (重点)
- 查找和替换
str1 = 'hello python'
"""查询字符的索引位置"""
# 字符串.find(字符) 查询该字符在字符串中的索引位置(只获取匹配到的第一个)
index = str1.find("o")
print(index)
# 字符串.find(字符, 起始索引, 结束索引) 查询指定的索引范围:[起始索引, 结果索引)
index = str1.find('o', 5, 11)
# # 查询不到数据时,返回-1
print(index)
# 字符串.rfind(字符) 从右侧开始查询
index = str1.rfind('o')
print(index)
"""替换"""
# 字符串.replace(原内容, 新内容) 字符串本身不能更改,所谓的'修改'其实是生成了一个新的字符串
str2 = str1.replace("python", "c")
print(str1)
print(str2)
# 字符串.replace(内容, 新内容, 替换次数) 默认全部替换,也可以指定次数
str2 = str1.replace("o", "a", 1)
print(str2)
- 拆分和拼接
str1 = 'hello python'
"""拆分"""
# 按照分隔符将字符串拆分为多个字符,并添加列表中返回
# 字符串.split(分隔符, 分割次数)
result = str1.split(" ")
print(result)
['hello', 'python']
"""拼接"""
# 字符串 + 字符串 拼接
str2 = '上海'
str3 = '北京'
str4 = str2 + '-' + str3
print(str4)
# 连接符.join(可迭代对象)
# 可迭代对象:可以进行for循环遍历的数据(高级变量类型都是)
# 该方法要求的可迭代对象中元素必须是字符串
str4 = '-'.join([str2, str3])
print(str4)
# 如果2-3个字符串拼接,使用 加法
# 如果多个字符串拼接,建议使用join 性能好
3. 切片 (重点)
str1 = 'hello python'
# 取一个字符 字符串[索引]
print(str1[1])
# 取一部分字符 切片
# 切皮格式: 字符串[开始索引:结束索引] 取值范围: [开始索引, 结束索引)
# hello
print(str1[0:5])
# python
print(str1[6:12])
# 切片也支持负数格式
# hello
print(str1[0:-7])
# 如果从开头开始取, 可以省略开始索引
# hello
print(str1[:5])
# 如果从取到最后一个元素,可以省略结束索引
# python
print(str1[6:])
- 步长
"""切片的高级处理: 步长"""
# 格式: 字符串[开始索引:结束索引:步长]
# 步长公式: 当前索引 + 步长 = 下一个数据的索引
str2 = "python"
print(str2[::2])
# 步长为负,表示倒序取值
print(str2[::-1]) # 将字符串翻转
# 如果步长为负数,
# 则省略开头表示从最后一个元素开始取;
# 则省略结尾表示取到第一个元素
print(str2[::-1]) # nohtyp
print(str2[5::-1]) # nohtyp
- 字符串练习
# 练习: 将 输入的文件名 123.txt -> 修改为 123[复件].txt
file_name = input("请输入文件名:")
# 方法一: 使用replace替换
new_filename = file_name.replace(".txt", "[复件].txt")
print(new_filename)
# 方法二: 使用切片来实现
# 查询.索引的位置
dot_index = file_name.rfind('.')
# 使用切片分割文件名,并重新拼接
new_filename = file_name[:dot_index] + '[复件]' + file_name[dot_index:]
print(new_filename)
二. 高级变量类型
1. set
# 有序: 列表 元组 字符串
# 无序: 字典 set
# 定义无序集合 1. 无序 2.去重
set1 = {10, 20, 30, 40, 30, 20}
print(set1)
print(type(set1))
# <class 'set'>
# 主要用于 去重处理
list1 = [10, 20, 30, 40, 30, 20]
# 将列表转为set
set2 = set(list1)
print(set2)
# 将set转为列表
list2 = list(set2)
print(list2)
2. 公共语法
list1 = [10, 20, 30, 40]
# 最大值
print(max(list1))
# # 最小指
print(min(list1))
# 列表/元组/字符串都支持切片
print(list1[2:])
# 判断是否不包括
if 50 not in list1:
print("不包括该数据")
# 逐个元素对比
ret = (1, 2, 6) < (1, 3, 4)
print(ret)
-
1.1 内置函数
-
1.2 切片
-
1.3 运算符