Python string 方法
字符串赋值
单行字符串赋值
对于大多数我们将来会定义的字符串来说,通常它们都是一行的,对于单行的字符串,我们可以使用如下代码:
str1 = "I am best" # "=" 为赋值符号,首先我们给字符串 str1 进行赋值
print(str1) # 打印 str1 字符串的结果
"""
result:
I am best
"""
小技巧:对于字符串变量的名称,我们可以使用 str1
,str2
,str3
等等来命名,这样变量表示的含义就会十分得显而易见,但是不能使用 str
来作为字符串的变量名,因为在 Python
中,str()
是一个函数。
多行字符串赋值
然而有时候我们想要打一段文字,那么就需要进行多行字符串的赋值操作了,对于多行字符串的赋值,可以使用如下代码:
str1 = """Today, the weather is good.
And my mood is also good.
I like summer day!
"""
print("字符串的输出结果为:")
print(str1)
print("字符串中的第1个字符为:")
print(str1[0])
print("字符串中的第27个字符为:")
print(str1[26])
print("字符串中的第28个字符为:")
print(str1[27])
print("字符串中的第29个字符为:")
print(str1[28])
"""
result:
字符串的输出结果为:
Today, the weather is good.
And my mood is also good.
I like summer day!
字符串中的第1个字符为:
T
字符串中的第27个字符为:
.
字符串中的第28个字符为:
字符串中的第29个字符为:
A
"""
可以看到,当我们输出字符串结果的时候,它会保持我们多行赋值的形式。
字符串中的第 1
个字符为 T
,注意其对应的索引值为 0
。
字符串中的第 27
个字符为 .
,注意其对应的索引值为 26
。
字符串中的第 28
个字符为 \n
,该符号为换行符,因此,我们可以看到在对应的输出结果位置,输出光标下移了两行。
字符串中的第 29
个字符为 A
,。注意其对应的索引值为 28
。
字符串中单个字符引用
上面,我们在介绍多行赋值的时候已经简单说明了关于如何访问字符串中某个字符。这里我们再以单行赋值举例说明一下,代码如下:
str1 = "I am best"
print(str1[0])
print([str1[1]])
print([str1[2]])
print([str1[3]])
print([str1[4]])
print([str1[5]])
print([str1[6]])
print([str1[7]])
print([str1[8]])
print([str1[-1]])
"""
result:
I
a
m
b
e
s
t
t
"""
字符串本身是一个可迭代对象,因此可以像数组元素一样,使用索引值来对字符串中的单个字符进行引用。注意:str1[-1]
表示引用的是字符串中的倒数第一个元素,即最后一个元素。
这里我们来看一个特殊情况。
str1 = "I"
print(str1)
print(str1[0])
print(str1[-1])
"""
result:
I
I
I
"""
如果我们的字符串仅有一个字符,我们可以将其视作一个字符,那么此时 str1
,str1[0]
与 str1[-1]
所获得的值会是一样的。
获取字符串的长度-------len()
str1 = "abc"
print(len(str1))
"""
result:
3
"""
判断字符是否在字符串中
str1 = "abc"
if 'a' in str1:
print("字符a在字符串abc中")
if 'd' not in str1:
print("字符d不在字符串abc中")
"""
result:
字符a在字符串abc中
字符d不在字符串abc中
"""
字符串拼接
简单字符串拼接
我们可以直接使用 "+"
符号连接我们想要拼接在一起的字符串。
str1 = "I"
str2 = " "
str3 = "am"
str4 = "the"
str5 = "best"
result = str1 + str2 + str3 + str2 + str4 + str2 + str5
print(result)
"""
result:
I am the best
"""
标准字符串拼接------join()
简单字符串拼接在某种程度上是具有局限性的,也是比较冗长的,为了简化,我们使用如下代码:
str1 = "I"
str2 = "am"
str3 = "the"
str4 = "best"
result = " ".join([str1, str2, str3, str4])
print(result)
"""
result:
I am the best
"""
我们还可以使用任意符号连接这些单个的字符串:
str1 = "I"
str2 = "am"
str3 = "the"
str4 = "best"
result = "-".join([str1, str2, str3, str4])
print(result)
"""
result:
I-am-the-best
"""
字符串中插入字符
可以查看这一篇Python 在字符串中某个单个字符两侧添加*(超链接点击跳转)。
查找字符串中对应字符的索引值------index()
调用方法:
string.index(value, start, end)
这里的 value
为必要参数,start
与 end
均为可选参数,start
默认值为 0
,end
的默认值为 len(string)
,即当前字符串的长度。
用法说明:
从左向右依次遍历整个目标字符串,找出目标字符在目标字符串中第一次出现的索引值。生成一个错误,如果目标字符串中查找不到目标字符。index()
方法与 find()
方法几乎一致,只是 index()
方法查找不到时会报错,而 find()
方法查找不到时会返回 -1
。
示例1
str1 = "abcba"
value = 'a'
result = str1.index(value)
print(result)
"""
result:
0
"""
可以看到,结果为 0
,我们输出的是从左向右查找到的第一个字符a
的索引值。那么问题来了,我们如果想要找到第二个 a
的索引值该怎么办呢?可以使用如下代码。
str1 = "abcba"
value = 'a'
index = str1.index(value)
result = str1.index(value, index+1)
print(result)
"""
result:
4
"""
我们通过指定起始搜索的索引位置来规避第一个 a
,从而得到了第二个字符 a
所对应的索引值。可以进一步推广,如果我们想要查找字符串中第 n
个 a
字符所对应的索引值呢?这里以 n=10
举例。
str1 = "abababababcbaaaaaa"
value = 'a'
num = 10 # 第十个a对应的索引值
index = 0
for i in range(num - 1):
index = str1.index(value, index)
index = str1.index(value, index + 1)
print(index)
"""
result:
16
"""
可以看到,我们成功地获取到了第 10
个字符 a
的索引值。
切分字符串使其称为列表------split()
很多时候我们需要将文件中的输入读入我们的编译器中再进行处理,通常,读入的数据初始的类型是 string
类型的。然而 string
用于数据处理和操作十分不方便,因此,通常我们需要将其切分成列表对象。此时我们可以使用 split()
来完成这个操作。
示例 1------对于字符串中只有一个字符的切分。
str1 = "reset"
list2 = str1.split()
print(type(list2))
print(list2)
print(len(list2))
print(list2[0])
"""
result:
<class 'list'>
['reset']
1
reset
"""
示例 2------对于字符串中有多个字符的切分。
str1 = "add me"
list1 = str1.split()
first_string = str1.split()[0]
second_string = str1.split()[1]
print(list1)
print(first_string)
print(second_string)
"""
result:
['add', 'me']
add
me
"""
后续会不断地更新,最新更新时间,2023.05.01.
码字不易,如果大家觉得有用,就请点个赞让更多的人看到吧~