目录
1. 字符串介绍
1.1 定义
1.2 特殊字符
1.3 特殊使用
1.4 索引下标
1.5 遍历
2. 常见操作
2.1 格式化、剔除、计数
2.2 拼接与切割
2.3 查找和替换
2.4 转换大小写
2.5 编码解码
2.6 字符判断
2.7 开始结尾
2.8 对齐
3. 切片
Python中的字符串是由一系列字符组成的。字符串是不可变的,这意味着一旦创建了一个字符串,就不能修改它的值。但是,可以通过连接、切片等方式操作字符串。例如:
# 连接字符串
str3 = str1 + ' ' + str2
print(str3) # 输出:hello, world! 你好,世界!
# 切片操作
sub_str = str1[0:5]
print(sub_str) # 输出:hello
字符串的定义很简单,变量名 + 赋值运算符 + 引号。引号中可以放入任何字符,通常情况下都使用双引号。例如:
str1 = "这里是中国" # 输出:这里是中国
str2 = 'Chinese' # 输出:Chinese
str3 = "hello '小明'" # 输出:hello '小明'
str4 = '"金铲铲"' # 输出:"金铲铲"
无论用双引号还是单引号都可定义字符串,单、双引号可以进行嵌套。
常见的特殊字符有:\ 、\n、\t、\b、"""、"、' 。
转义字符: \
作用:转义字符的作用就是把特殊字符转换成普通的字符
# 对特殊字符进行转义 str = " \\, \\\\, \\n, \\t, \\b, \", \', \"\"\" " print(str)
输出结果: \, \\, \n, \t, \b, ", ', """
特殊字符均被输出出来,因为使用了转义字符进行的转义。
换行符:\n
作用:加入字符串中输出时可进行换行
print("你\n好\n呀")
输出结果:你
好
呀
制表符:\t
作用:相当于一个Tab的距离,目的是为了让输出内容对齐美观
print("1\t", "2\t", "3\t","45") print("上山\t", "打\t", "老\t", "虎")
输出结果:
你会发现,使用了制表符,输出内容都是左对齐的。
退格符:\b
作用:使输出内容被退格
print("老虎没打着\b")
输出结果:老虎没打
引号:"""、"、'
作用:三引号、双引号、和单引号。都可用于定义字符串。""" 用于带格式的字符串,输出时会保留字符串的格式。双、单引号除了长得不一样,无任何区别。
str1 = """ * *** ***** """ str2 = "夜空中" \ "最亮的星" str3 = '请指引' \ '我前行' # 输出 print(str1) print(str2) print(str3)
输出结果:
三引号的内容格式被保留了,单、双引号中的内容是可以通过 \ 进行连接的。由于 PEP8编码规范规定单行字符串不要超过120个字符,所以可以使用 \ 连接换行字符串。
有两种:
演示代码:
# 使用+拼接
str1 = "半岛" + "铁盒"
print(str1)
# 使用*重复
str2 = "她说 " * 3
print(str2)
输出结果:
半岛铁盒
她说 她说 她说
索引下标和之前讲过的列表相似,包括以下三点:
# 输出字符串中每个字符的索引和对应字符1
str1 = "那是我日夜思念,深深爱着的人啊"
for element in str1:
print(str1.index(element), element, end=" | ")
print()
# 通过索引查找字符
char = str1[3]
print(char)
输出结果:
下标时从0开始的,最大时 len -1,并且索引 3 对应的元素时“日”。
字符串的遍历和列表的遍历可以说是相同的,有两种方式。
# 直接对字符串遍历 str1 = "雨下整夜" for i in str1: print(i, end="*") print() # 通过索引遍历 str2 = "我的爱溢出就像雨水" for j in range(len(str2)): print(str2[j], end="^")
输出结果:
通过使用format、strip、count 这些方法来实现。
format(): 将字符串格式化
strip(): 剔除开头和结尾的指定字符,默认剔除空格
count(): 统计字符串出现的次数,默认从开始到结尾,也可指定开始和结束位置(不包含)。
代码如下:
# format()
a = 10
b = 20
print(f"a={a},b={b}")
print("a={1},b={0}".format(a, b))
输出结果:a=10,b=20
a=10,b=20
# strip() lstrip()左 rstrip()右
# 剔除空格(默认),或指定字符
print(" hi ".strip())
print("**hi**".lstrip("*"))
print("**hi**".rstrip("*"))
输出结果:hi
hi**
**hi
# count()
# 统计索引4-6的 * 的个数,不包括6
print("**hi***".count(" ", 4, 6))
输出结果:2
通过 join 和 split 实现。
join:拼接,拼接内容必须可被遍历。
split:切割,将字符串使用指定内容切割成列表。
# join
print("python,".join("hello world"))
print("python,".join(["1", "2", "3"]))
# split()
str1 = "2024/1/14"
print(str1.split("/"))
输出结果:
h秀e秀l秀l秀o秀 秀w秀o秀r秀l秀d
1啊2啊3
['2024', '1', '14']
查找:find
# find(), 默认查找指定字符串第一次出现的位置,匹配失败返回 -1
print("**hi**".find("i"))
print("**hi**".rfind("h")) # 从右侧匹配第一个
print("**hi**".rfind("1"))
输出结果:
3
2
-1
还用另外一个查找 index,和 find 相似,差别就在 index 在查找不到时会直接报错。
替换:replace
str1 = "他喜欢你,他喜欢你"
print(str1.replace("他", "我"))
输出结果:我喜欢你,我喜欢你
返回结果是True或False。
切片是Python独有的, 是一种操作序列类型(如字符串、列表、元组等)的方法,它可以从序列中提取一部分元素生成一个新的序列。切片操作使用冒号分隔的起始和结束索引来指定要提取的元素范围。
切片操作的语法如下:
sequence[start:end]
其中,start
表示切片的起始索引,end
表示切片的结束索引。需要注意的是,切片操作是左闭右开的,即包含起始索引对应的元素,但不包含结束索引对应的元素。
切片操作还可指定每次提取元素的间隔,如step
表示步长。例如,sequence[start:end:step]
表示从起始索引开始,每隔step
个元素提取一个元素,直到结束索引的前一个元素。
字符串切片:
# 字符串切片
s = 'hello world'
print(s[0:5]) # 输出 'hello'
print(s[7:12]) # 输出 'world'
print(s[::2]) # 输出 'hlo ol'
输出结果:
hello
orld
hlowrd
列表切片:
# 列表切片
lst = [1, 2, 3, 4, 5]
print(lst[1:4]) # 输出 [2, 3, 4]
print(lst[:3]) # 输出 [1, 2, 3]
print(lst[::2]) # 输出 [1, 3, 5]
输出结果:
[2, 3, 4]
[1, 2, 3]
[1, 3, 5]
元组切片:
# 元组切片
tup = (1, 2, 3, 4, 5)
print(tup[1:4]) # 输出 (2, 3, 4)
print(tup[:3]) # 输出 (1, 2, 3)
print(tup[::2]) # 输出 (1, 3, 5)
输出结果:
(2, 3, 4)
(1, 2, 3)
(1, 3, 5)
终于写完了,内容好多啊,后面常见操作有些没给代码,读者可以试着手动编写一下,后续我会尽力补上,over,喜欢作者可以给个关注哦,持续更新中