操作字符串的一些方法
修改字符串大小写
title()
:把字符串中每个单词首字母改为大写。
upper()
:把字符串中所有字符改为大写。
lower()
:把字符串中所有字符改为小写。
>>> 'the introduction to python'.title()
'The Introduction To Python'
>>> 'abc'.upper()
'ABC'
>>> 'ABC'.lower()
'abc'
在字符串中使用变量
字符串变量 = f"{变量1}{变量2}"
将变量插入字符串,这种字符串叫做f字符串。当然,也可以使用format()函数将变量插入字符串,格式为字符串变量 = "{0}{1}.format(变量1,变量2)"
。
>>> name = 'Mary'
>>> age = 18
>>> information1 = f"Hello {name}, you are {age} years old"
>>> print(information1)
Hello Mary, you are 18 years old
>>> information2 = "Hello {0}, you are {1} years old".format(name, age)
>>> print(information2)
Hello Mary, you are 18 years old
转义字符
转义字符 | 描述 |
---|---|
(行尾的)\ | 续行符 |
\\ | 反斜杠符号 |
’ | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符。如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符。如:\x0a代表换行 |
>>> x = 'abc\tabc'
>>> print(x)
abc abc
>>> x = 'abc\
123\
789'
>>> x
'abc123789'
删除空白
lstrip()
:删除字符串左边的空白。
rstrip()
:删除字符串右边的空白。
strip()
:删除字符串两边的空白。
>>> y = ' abc abc '
>>> print(y)
abc abc
>>> y.lstrip() # 删除左空白
'abc abc '
>>> y.rstrip() # 删除右空白
' abc abc'
>>> y.strip() # 删除两边的空白
'abc abc'
当然,我们也可以在strip()方法中添加参数,删除字符串左右两边相应的字符。例如,删除两边的*
号。
>>> x = '****abc**abc***'
>>> print(x)
****abc**abc***
>>> x.lstrip('*')
'abc**abc***'
>>> x.rstrip('*')
'****abc**abc'
>>> x.strip('*')
'abc**abc'
获取字符串长度
可以使用len(字符串/字符串变量名)
获取字符串长度。
>>> len('abc')
3
>>> x = 'abcd'
>>> len(x)
4
字符串连接
可以使用+号或者两个字符串写一起,直接对多个字符串进行连接。
>>> str = 'abc' + '123'
>>> print(str)
abc123
>>> str1 = 'asd''asd'
>>> print(str1)
asdasd
字符串复制
格式为待复制的字符串 * 复制次数
。
>>> a = 'abc' * 4
>>> print(a)
abcabcabcabc
打印原始字符串
在字符串开始的引号前加上r。
>>> print(r'abc\nabc')
abc\nabc
多行字符串
多行字符串使用'''
三重单引号或者"""
三重双引号包围,被包围的所有引号、制表符或换行符都被认为是字符串的一部分。
>>> print('''Dear Mary,
Happy birthday.
Sincerely,
Caizi''')
Dear Mary,
Happy birthday.
Sincerely,
Caizi
获取字符串中某个位置上的元素
使用索引,可以获取到字符串中某个位置上的元素。索引范围为0
~字符串长度 - 1
,-1
~-字符串长度
。
>>> s1 = 'Hello World!'
>>> print(s1[4])
o
>>> print(s1[-2])
d
字符串切片
字符串变量名[起始值:终止值]
:对字符串进行切片处理,把从字符串索引值为起始值到终止值-1的字符串切割出来。
字符串变量名[起始值:终止值:步长]
:对字符串进行切片处理,把从字符串索引值为起始值到终止值-1每隔步长数切一个字符组成字符串。
字符串变量名[:终止值]
:对字符串进行切片处理,把从字符串索引值为0到终止值-1的字符串切割出来。
字符串变量名[起始值:]
:对字符串进行切片处理,把从字符串索引值为起始值到字符串尾的字符串切割出来。
>>> s2 = 'abcdefghijkl'
>>> s2[3:5]
'de'
>>> s2[4:]
'efghijkl'
>>> s2[:5]
'abcde'
>>> s2[3:9:2]
'dfh'
判断字符串是否在另一个字符串中
使用in
或者not in
操作符。
>>> 'Hello' in 'Hello World'
True
>>> 'Hello' in "Hi, I'm Caizi"
False
>>> 'Hello' not in "Hi, I'm Caizi"
True
有用的字符串方法
isupper()
:如果字符串中所有字符都为大写,则返回True。
islower()
:如果字符串中所有字符是为小写,则返回True。
>>> 'ABD'.isupper()
True
>>> 'abc'.islower()
True
isalpha()
:如果字符串只包含字母,并且非空,则返回True。
>>> 'abcAB'.isalpha()
True
>>> 'abcAB123'.isalpha()
False
isalnum()
:如果字符串只包含字母和数字,并且非空,则返回True。
>>> 'abcABC123'.isalnum()
True
isdecimal()
:如果字符串只包含数字字符,并且非空,则返回True。
>>> '123'.isdecimal()
True
>>> 'abc123'.isdecimal()
False
isspace()
:如果字符串只包含空格、制表符和换行符,并且非空,则返回True。
>>> ' '.isspace()
True
>>> ' as'.isspace()
False
istitle()
:如果字符串只包含以大写字母开头、后面都是小写字母的单词、数字或空格,则返回True。
>>> 'The Python'.istitle()
True
>>> 'THE Python'.istitle()
False
startswith()
:如果字符串以所给的参数开始,则返回True。
endswith()
:如果字符串以所给的参数结束,则返回True。
>>> 'Hello World'.startswith('Hello')
True
>>> 'Hello World'.endswith('ld')
True
>>> 'Hello World'.endswith('a')
False
字符串.join(列表)
:提取列表的每个值并以给定字符串隔开组成一个新字符串。
>>> '-'.join(['1','2','3'])
'1-2-3'
字符串.split(字符串参数)
:以给定的字符串参数对字符串进行分割组成一个列表。
>>> 'I*am*Caizi.'.split('*')
['I', 'am', 'Caizi.']
字符串.partition(分隔符)
:将字符串分割成字符串出现的第一个分隔符前后的文本,结果返回三个子字符串的元组,分别是分隔符,分隔符之前的字符串,分隔符之后的字符串。
>>> 'abcdefghijkl'.partition('def')
('abc', 'def', 'ghijkl')
>>> 'abc'.partition('abc')
('', 'abc', '')
rjust(长度, 填充字符)
:返回调用它们的字符串的填充版本,通过插入给定填充字符,右对齐文本。
ljust(长度, 填充字符)
:返回调用它们的字符串的填充版本,通过插入给定填充字符,左对齐文本。
center(长度, 填充字符)
:返回调用它们的字符串的填充版本,通过插入给定填充字符,中间对齐文本。
>>> 'abc'.rjust(10, '*')
'*******abc'
>>> 'abc'.ljust(10, '*')
'abc*******'
>>> 'abc'.center(10, '*')
'***abc****'