字符串类型内置方法
字符串类型内置方法
一、字符串(str)
1.1 作用
描述名字、爱好等
1.2 定义方式
使用''、""、''''''、""""""包裹的的一串字符
x = 'jiayi'
x = str(1.1)
x = str([1,2,3])
1.3 内置方法
1.3.1优先掌握
1.按索引取值
s = '**$%#jvsdhewvdcsuerb23746jnjk%E!!**'
print(s[8]) #取第8个值
d
2.切片
s = '**$%#jvsdhewvdcsuerb23746jnjk%E!!**'
print(s[3:12]) #取第3到第11个字符
print(s[3:12:3]) #取第3到第11个字符,步长为2
print(s[13:]) #取第13到最后的字符
print(s[-4:]) #取倒数第四个到最后的字符
print(s[-2:-9:-1]) #取倒数第2个到倒数第9个字符,-1表示从右往左取
print('-'*50)
%#jvsdhew
%vh
dcsuerb23746jnjk%E!!**
!!**
*!!E%kj
3.for循环
s = '**$%#jvsdhewvdcsuerb23746jnjk%E!!**'
for i in s:
print(i)
print('-'*50
*
*
$
%
#
j
v
s
d
h
e
w
v
d
c
s
u
e
r
b
2
3
7
4
6
j
n
j
k
%
E
!
!
*
*
4.strip:去两端空白
s1 = ' **$%#jvsdhewvdcsuerb23746jnjk%E!!** '
print(s1.strip()) #去除两端的空白
print(s1.strip(' *')) #去除两端的空白和*
print(s1.strip('* dhed')) #指定多个字符一起切割
**$%#jvsdhewvdcsuerb23746jnjk%E!!**
$%#jvsdhewvdcsuerb23746jnjk%E!!
$%#jvsdhewvdcsuerb23746jnjk%E!!
5.split() :切割
s = '$%*#j jk% E!!**'
print(s.split()) #默认以空格切割字符串
print(s.split('*')) #以字符串切割
print(s.split('*',1)) # 1代表切割的次数
['$%*#j', 'jk%', 'E!!**']
['$%', '#j jk% E!!', '', '']
['$%', '#j jk% E!!**']
- in or not in
s = '$%*#j jk% E!!**'
print('*' in s)
print('n' not in s)
True
True
7.长度len
s = '$%*#j jk% E!!**'
print(len(s))
15
1.3.2需要掌握
1.Lstrip() [去除左端]和 rstrip()[去除右端]
name = '&&jiayi&&'
print(name.lstrip('&'))
print(name.rstrip('&'))
jiayi&&
&&jiayi
2.split()和rsplit()
name = '&&jiayi&&'
print(name.split('&',1)) #从左开始切
print(name.rsplit('&',1)) #从右开始切
['', '&jiayi&&']
['&&jiayi&', '']
3.lower 和 upper
s = 'aabbJ'
print(s.lower()) #全大写
print(s.upper()) #全小写
aabbj
AABBJ
4.startswith()和endswith()
s = 'aabbJ'
print(s.startswith('a')) #是否以a开头
print(s.endswith('b')) #是否以b结尾
True
False
5.join
s = 'aabbJ'
print(s.join(['234','234','234'])) #以s为间隔符,拼接到表里的每一个元素
234aabbJ234aabbJ234
6.replace() 替换
name = 'yanjayi beautiful'
print(name.replace('beautiful','sunny'))
yanjayi sunny
```
7.isdigit() #判断是否为纯数字
```python
name = 'yanjayi beautiful'
print(name.isdigit())
False
```
isalpha() #判断是否为纯字母
```python
name = 'yanjayi'
print(name.isalpha())
True
```
#### 1.3.2适当掌握
1.find|rfind|
```python
s = '7438#&#*hsdjhv'
print(s.find('#')) # 从左找,找到第一个停止,找不到返回-1
print(s.rfind('#')) # 从右找,找到就停止,找不到返回-1
print(s.rfind('*')) # 从右找,找到就停止,找不到返回-1
print(s.rfind('$')) # 从右找,找到就停止,找不到返回-1
4
6
7
-1
```
2.index|rindex
```python
s = '7438#&#*hsdjhv'
print(s.index('#')) # 从左找,找到第一个停止,找不到就报错
print(s.rindex('#')) # 从右找,找到就停止,找不到就报错
print(s.rindex('*')) # 从右找,找到就停止,找不到就报错
print(s.rindex('$')) # 从右找,找到就停止,找不到就报错
4
6
7
报错
```
3.center|ljust|rjust|zfill
```python
s2 = 'jiayi'
print(s2.center(50, '*')) # 居中
print(s2.ljust(50, '*')) # 居左
print(s2.rjust(50, '*')) # 居右
print(s2.zfill(50)) # 填充0居右
**********************jiayi***********************`
jiayi*********************************************
*********************************************jiayi
000000000000000000000000000000000000000000000jiayi
```
4.expandtabs (缩进几个字符)
```python
s2 = 'a\ta'
print(s2)
print(s2.expandtabs(8)) # 针对\t而言
a a
a a
```
5.captalize|swapcase|title 只针对英文
```python
s2 = 'harry Potter'
print(s2.capitalize()) # 首字母(一句话的开头)大写,其他全小写,用在段落开始
print(s2.swapcase()) # 大小写互换
print(s2.title()) # 所有单词首字母大写
Harry potter
HARRY pOTTER
Harry Potter
```
### 1.4 有一个值还是多个值
1个值
### 1.5 有序(索引)or无序(索引)
有序
### 1.6 可变or不可变
不可变
```python
name = 'jiayi'
print(id(name))
name = 'jiayi handsome'
print(id(name))
2978899060024
2978899830576
```