**srt()实现数字转字符串**
str()可以把其他类型的数据转换成字符串
例:srt(5.20) 会转译成 '5.20' srt(3.14e2) 会转译成 '314.0' str(True) 会转译成 'True'
当我们调用print()函数时,解释器自动调用了str() 将非字符串的对象转成了字符串。
<br>
**replace() 字符串替换**
>[danger] 注:字符串时不可改变的,所以replace() 生成的是一个新的字符串 并不会改变老的字符串
```
>>>a = 'abcdefghijklmnopqrstuvwxyz'
>>>a.replace('c','浩哥')
'ab浩哥defghijklmnopqrstuvwxyz'
>>>a # a的值并没有改变
'abcdefghijklmnopqrstuvwxyz'
>>>a = a.replace('c','哈哈')
>>>a
'ab哈哈defghijklmnopqrstuvwxyz'
```
<br>
**字符串切片(截取) slice 操作**
切片 slice 操作可以让我们快速的提取字符串。标准格式为:
[起始偏移量start:终止怕偏移量 end: 步长 strp]
a = 'abcdefghijk'
| 操作 | 示例 | 结果 |
| --- | --- | --- |
| [:] 提取整个字符串 | a[:] | 'abcdef' |
| [start:] 从start索引开始 | a[2:] | 'cdef' |
| [:end] 从头开始到end结束 | a[:2] | 'ab' |
| [start:end] 从start开始到end结束 | a[2:4] | 'cd' |
| [start:end:step] 从start开始到end结束 ,步长step | a[1:11:2] | 'bdfhj' |
如果为负数
| 操作 | 说明 | 结果 |
| --- | --- | --- |
| a[-3:] | 倒数3个 | 'ijk' |
| [-5:-3] | 倒数第5个到倒数第三个 | 'hi' |
| [::-1] | 步长为负,反向提取 | 'kjihgfedcba' |
<br>
**split() 分割和 join() 合并**
split() 可以指定分隔符将字符串分割成多个字符串(储存在列表中)。如果不指定分隔符,则默认使用空白符(换行符/空格/制表符)
例:
```
# 字符串转数组
>>>a = 'to be or not to be'
>>>a.split()
['to', 'be', 'or', 'not', 'to', 'be']
>>>a = 'a,b,c,d,e'
['a,b,c,d,e']
# 数组转字符串用空格分割
>>>a=['a,b,c,d,e']
>>>a = ['a','b','c','d','e','f']
>>>' '.join(a)
'a b c d e f'
```
<br>
**成员操作符**
in/not in 关键字, 判断某个字符是否存在于字符串中
```
>>>a = 'htsrdffgsd'
>>>'ht' in a
True
```
<br>
**字符串格式化**
基本语法用过 **{}** 和 **:** 来代理以前的 **%**
format 函数不限参数,位置可以不按顺序
```
>>>a = '我是你:{0},年龄是:{1}'
>>>a.format('爸爸','44')
'我是你:爸爸,年龄是:44'
>>>b = '我是你:{0},你是我{1},{0}永远爱你'
>>>b.format('爸爸','儿子')
'我是你:爸爸,你是我儿子,爸爸永远爱你'
>>>c = '我是{name},今年{age},是个{label}'
>>>c.format(name='hao ge',age=18,label="精神小伙")
'我是hao ge,今年18,是个精神小伙'
```
<br>
**常用查找方法**
a = '''我是你爸爸,你是我儿子,但你是个逆子,所以我不认你了'''
| 方法和使用示例 | 说明 | 结果 |
| --- | --- | --- |
| len(a) | 获取字符串长度 | 26 |
| a.startswith('我是') | 判断是否以指定字符串开头 | True |
| a.endswith('你了') | 判断是否以指定字符串开头 | True |
| a.find('儿子') | 第一次出现指定字符串的位置 | 9 |
| a.rfind('逆子') | 最后一次出现指定字符串的位置 | 16 |
| a.count('是') | 统计指定字符串共出现过几次 | 3 |
| a.isalnum() | 判断所有字符串是否全是数组或字母 | False |
<br>
**去除首尾信息**
通过 strip() 去除字符串首尾指定信息
通过 lstrip() 去除字符串左边的指定字符信息
通过 rstrip() 去除字符串右边的指定字符信息
a = ',1,2,3,'
```
>>>a.strip(',')
'1,2,3'
>>>a.lstrip(',')
'1,2,3,'
>>>a.rstrip(',')
',1,2,3'
```
<br>
**大小写转换**
a = 'wo shi ni baba ni shi WO er zi',
| 示例 | 说明 | 结果 |
| --- | --- | --- |
| a.capitalize() | 产生新的字符串,第一个单词首字母大写 | 'Wo shi ni baba ni shi wo er zi' |
| a.title() | 产生新的字符串,每个单词首字母大写 | 'Wo Shi Ni Baba Ni Shi Wo Er Zi' |
| a.upper() | 产生新的字符串,所有字母大写 | 'WO SHI NI BABA NI SHI WO ER ZI' |
| a.lower() | 产生新的字符串,所有字母小写 | 'wo shi ni baba ni shi wo er zi' |
| a.swapcase() | 产生新的字符串,所有字母大小写互换 | 'WO SHI NI BABA NI SHI wo ER ZI' |
<br>
**格式排版**
center()、ljust()、rjust()这单个函数用户对字符串实现排版
a = 'hao ge'
```
>>>a.center(20,'-')
'-------hao ge-------'
>>>a.ljust(10,'*')
'hao ge****'
>>>a.rjust(10)
' hao ge'
```
其他方法
* isalnum() 是否为字母或数字
* isalpha() 检测字符串是否只由字母组成(含汉字)
* isdigit() 检测字符串是否只有数字组成
* isspace() 检测是否为空白符
* isupper() 是否为大写字母
* islower() 是否为小写字母