Python——字符串的详细介绍

发布时间:2024年01月15日

1. 字符串介绍

?Python中的字符串是由一系列字符组成的。字符串是不可变的,这意味着一旦创建了一个字符串,就不能修改它的值。但是,可以通过连接、切片等方式操作字符串。例如:

# 连接字符串
str3 = str1 + ' ' + str2
print(str3)  # 输出:hello, world! 你好,世界!

# 切片操作
sub_str = str1[0:5]
print(sub_str)  # 输出:hello

1.1 定义

字符串的定义很简单,变量名 + 赋值运算符 + 引号。引号中可以放入任何字符,通常情况下都使用双引号。例如:

str1 = "这里是中国"    # 输出:这里是中国
str2 = 'Chinese'      # 输出:Chinese
str3 = "hello '小明'" # 输出:hello '小明'
str4 = '"金铲铲"'     # 输出:"金铲铲"

无论用双引号还是单引号都可定义字符串,单、双引号可以进行嵌套。?

1.2 特殊字符

常见的特殊字符有:\ 、\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个字符,所以可以使用 \ 连接换行字符串。

1.3 特殊使用?

有两种:

  1. 使用 + 将字符串拼接
  2. 使用 * 将字符串重复?

演示代码:

# 使用+拼接
str1 = "半岛" + "铁盒"
print(str1)
# 使用*重复
str2 = "她说 " * 3
print(str2)

输出结果:

半岛铁盒
她说 她说 她说??

1.4?索引下标

索引下标和之前讲过的列表相似,包括以下三点:

  1. 范围是从 0 至 len - 1,len即字符串的长度。
  2. 通过索引可以找到字符串中的任意一个字符。
  3. 索引越界时会有错误提示:string index out of range.?
# 输出字符串中每个字符的索引和对应字符1
str1 = "那是我日夜思念,深深爱着的人啊"
for element in str1:
    print(str1.index(element), element, end=" | ")
print()

# 通过索引查找字符
char = str1[3]
print(char)

输出结果:

?下标时从0开始的,最大时 len -1,并且索引 3 对应的元素时“日”。

1.5?遍历

?字符串的遍历和列表的遍历可以说是相同的,有两种方式。

  1. 直接对字符串遍历
  2. 通过索引遍历
# 直接对字符串遍历
str1 = "雨下整夜"
for i in str1:
    print(i, end="*")
print()

# 通过索引遍历
str2 = "我的爱溢出就像雨水"
for j in range(len(str2)):
    print(str2[j], end="^")

?输出结果:

2. 常见操作

2.1??格式化、剔除、计数

?通过使用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

2.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']

2.3 查找和替换

查找: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("他", "我"))

输出结果:我喜欢你,我喜欢你

2.4 转换大小写?

  • ?capitalize()? 首字母转大写
  • title()? 所有字符串单词首字母大写
  • upper()? 全转大写
  • lower()? 全转小写
  • swapcase()? 大小写切换

2.5?编码解码

  • ?encode() 编码 encoding = "" 编码方式
  • decode() 解码 解码时的编码方式要相同

2.6?字符判断

  • ?isalpha() 是否全字符
  • isalnum() 是否是字符或数字
  • ?isnumberic() 是全数字

2.7?开始结尾

  • ?endswith() 是否以某字符串结尾
  • startwith() 是否以某字符串开始

返回结果是True或False。?

2.8?对齐

  • ?center() 在指定宽度下居中,默认空格,也可指定字符
  • ?ljust() ?内容靠左,其它填充
  • rjust() 内容靠右
  • ?zfill() 左边填充 zero

3. 切片?

切片是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,喜欢作者可以给个关注哦,持续更新中🌹🌹🌹?

文章来源:https://blog.csdn.net/2301_77186809/article/details/135587520
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。