0%
字符串
认识字符串
- 字符串是一个序列。一种不可变序列,它包含的字符存在从左到右的位置顺序。
- 不可变是指:字符串创建以后无法修改它的内容。
- 字符串由一对双引号或者单引号包围
转义字符
‘ \‘ ‘ 字符串中的引号处理
‘ \\ ‘ 转义反斜杠
‘ \n ‘ 换行符
1 2 3
| str1 = "Where are you from ? \nbeijing" print(str)
|
‘ \t ‘ 退格符
1 2 3
| print('Where are you from ?\tbeijing')
print('Where are you from ?\t\tbeijing')
|
1 2
| Where are you from ? beijing Where are you from ? beijing
|
“ \ “ 长字符串换行
- 长代码换行,可以把一个长字符串写成多行
- 实际输出还是一行
1 2 3 4
| str1 = 'Where are you from ?\ beijing'
print(str1)
|
1
| Where are you from ?beijing
|
字符串原样输出
“”” “”” / ‘’’ ‘’’ 三引号或三单引号包围
1 2 3 4
| print('''你学会了吗?Y or N? 有什么明白的? ---- 请及时提出来! OK! ''')
|
1 2 3
| 你学会了吗?Y or N? 有什么明白的? ---- 请及时提出来! OK!
|
r’ ‘模式输出
1
| r'你学会了吗?Y or N? \n 有什么明白的?\t\t 请及时提出来!OK! '
|
1
| '你学会了吗?Y or N? \\n 有什么明白的?\\t\\t 请及时提出来!OK! '
|
1
| r'D:\GTJA\RichEZ\newVer\files\f11\tdxf11_zs.htm'
|
1
| 'D:\\GTJA\\RichEZ\\newVer\\files\\f11\\tdxf11_zs.htm'
|
1
| f'D:\GTJA\RichEZ\newVer\files\f11\tdxf11_zs.htm'
|
1
| 'D:\\GTJA\\RichEZ\newVer\x0ciles\x0c11\tdxf11_zs.htm'
|
字符串的操作
索引和切片
1 2 3 4
| str1 = 'python_ string'
len(str1)
|
1 2 3 4 5 6 7 8
| str1 = 'python _ string'
print(str1[3]) print(str1[2:9]) print(str1[::2]) print(str1[::-1])
|
1 2 3 4
| h thon _ pto _srn gnirts _ nohtyp
|
统计
1 2 3 4
| str1.count('n')
str1.count('t', 3) str1.count('t', 3, -5)
|
字符串的拼接
以连续书写的形式拼接字符串
1 2
| s1 = 'htmml' 'css' 'c++' 'Java' s1
|
+运算符拼接字符串
1 2 3
| s1 = 'html' s2 = 'python' s1 + s2
|
字符串的分割
str.split(sep,maxsplit)
str:表示要进行分割的字符串;
sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
默认分隔符为空格
1 2 3
| str1 = 'python _ string'
str1.split()
|
1
| ['python', '_', 'string']
|
1 2 3
| str1 = 'python_string'
str1.split()
|
指定分隔符
1 2 3 4
| str1 = 'python _ python.string'
str1.split('_') str1.split('.')
|
1 2
| ['python ', ' python.string'] ['python _ python', 'string']
|
同时指定分隔符和最大分割数量
1 2
| str1 = r'my\name\is\hell\kety' str1.split('\\', 3)
|
1
| ['my', 'name', 'is', 'hell\\kety']
|
字符串的合并
- str.join(iterable)
- 相当于split的反向操作
1 2
| s1 = ['my', 'name', 'is', 'hell', 'kety'] str.join('/', s1)
|
查找指定字符串
.find()方法
- .find(sub[, start[, end]]) -> int
- 找什么?
- 从哪个位置开始,哪个位置结束
- 返回找到的数量
1 2 3
| str1 = 'python _ string'
str1.find('t')
|
index() 方法
- 返回查找值首次出现的位置索引。
- 可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。
1 2
| str1 = 'python _ string' str1.index('h')
|
字符串对齐
ljust() 方法
- S.ljust(width[, fillchar])
- S:表示要进行填充的字符串;
- width:表示包括 S 本身长度在内,字符串要占的总长度;
- fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。
1 2 3 4
| s1 = 'guangzhou' s2 = 'bj' s1.ljust(20, '*') s2.ljust(20, '-')
|
1 2
| 'guangzhou***********' 'bj------------------'
|
rjust() 方法
- S.rjust(width[, fillchar])
- 参数含义同ljust()
- rjust() 方法是向字符串的左侧填充指定字符
1 2 3 4
| s1 = 'guangzhou' s2 = 'bj' s1.rjust(20, '*') s2.rjust(20, '-')
|
1 2
| '***********guangzhou' '------------------bj'
|
center() 方法
- S.center(width[, fillchar])
- 参数同
- 让文本居中,而不是左对齐或右对齐
1 2 3 4
| s1 = 'guangzhou' s2 = 'bj' s1.center(20, '*') s2.center(20, '-')
|
1 2
| '*****guangzhou******' '---------bj---------'
|
检索字符串开头结尾
startswith()方法
- str.startswith(sub[,start[,end]])
- 检索是否以指定字符串开头
- str:表示原字符串;
- sub:要检索的子串;
- start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
- end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。
1 2
| s1 = 'guangzhou' s1.startswith('s')
|
endswith()方法
- str.endswith(sub[,start[,end]])
- 检索是否以指定字符串结尾
- 参数同
1 2
| s1 = 'guangzhou' s1.endswith('ou')
|
大小写转换
title()方法
1 2
| s1 = 'guangzhOu shenzhEn' s1.title()
|
lower()方法
1 2
| s1 = 'guangzhOu shenzhEn' s1.lower()
|
upper()方法
1 2
| s1 = 'guangzhOu shenzhEn' s1.upper()
|
删除特殊字符
strip()方法
- str.strip([chars])
- str 表示原字符串
- [chars] 用来指定要删除的字符,可以同时指定多个,如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符。
- 删除字符串前后(左右两侧)的空格或特殊字符
1 2 3
| s1 = r' guang zhou '
s1.strip()
|
lstrip()方法
1 2
| s1 = r' guang zhou ' s1.lstrip()
|
rstrip()方法
1 2
| s1 = r' guang zhou ' s1.rstrip()
|