思维导图总括
1. 创建字符串
1.1 字符串之间拼接
直接将两个字符串紧挨着写在一起
strname = "str1" "str2"
1.2 字符串变量拼接
使用变量,就得借助+运算符来拼接
strname = str1 + str2
1.3 字符串与数字的拼接
Python 不允许直接拼接数字和字符串,所以我们必须借助str(),repr()先将数字转换成字符串。
使用格式:**str(obj)、repr(obj)**
name = "C语言中文网"
age = 8
course = 30
info = name + "已经" + str(age) + "岁了,共发布了" + repr(course) + "套教程。"
print(info)
————————运行结果——————
C语言中文网已经8岁了,共发布了30套教程。
**str()、repr()**
的区别**str() 和 repr()**
函数虽然都可以将数字转换成字符串,但它们之间是有区别的:
**str() **
用于将数据转换成适合人类阅读的字符串形式。**repr() **
用于将数据转换成适合解释器阅读的字符串形式(Python 表达式的形式),适合在开发和调试阶段使用;如果没有等价的语法,则会发生**SyntaxError**
异常。 ```python s = “http://c.biancheng.net/shell/“ s_str = str(s) s_repr = repr(s) print( type(s_str) ) print (s_str) print( type(s_repr) ) print (s_repr)
————————运行结果——————
<a name="BirnB"></a>
## 2. 获取字符串切片
<a name="Oukbg"></a>
### 2.1 获取单个字符
`**strname[index]**`<br />strname 表示字符串名字,index 表示索引值。
<a name="DWQfh"></a>
### 2.2 获取多个字符
`**strname[start : end : step]---->**`从start提取至end-1,每隔step个字符提取一个。<br />strname[ : :-1]——代表从右往左依次取值。
<a name="EOaQp"></a>
## 3. 分割字符串
split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来。<br />`**str.split(sep,maxsplit)**`
- str:表示要进行分割的字符串;
- sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
- maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
```python
str="ni >>> hao"
a=str.split(">>>")
b=str.split()
print(a)
print(b)
——————运行结果——————
["ni","hao"]
["ni",">>>","hao"]
4. 合并字符串
使用 join() 方法合并字符串时,它会将列表(或元组)中多个字符串采用固定的分隔符连接在一起**newstr = str.join(iterable)**
- newstr:表示合并后生成的新字符串;
- str:用于指定合并时的分隔符;
- iterable:做合并操作的源字符串数据,允许以列表、元组等形式提供。 ```python dir=(“usr”,”bin”,”net”) “/“.join(dir)
————————运行结果————————————
“usr/bin/net”
<a name="ei0CR"></a>
## 5. 统计字符串出现的次数
count 方法用于检索指定字符串在另一字符串中出现的次数,如果检索的字符串不存在,则返回 0,否则返回出现的次数。<br />`**str.count(sub[,start[,end]])**`
- str:表示原字符串;
- sub:表示要检索的字符串;
- start:指定检索的起始位置,也就是从什么位置开始检测。如果不指定,默认从头开始检索;
- end:指定检索的终止位置,如果不指定,则表示一直检索到结尾。
```python
str="www.baidu.com"
a = str.count('.',1)
b = str.count('.',2)
c = str.count('.',2,-3)
d = str.count('.',2,-4)
print(a)
print(b)
print(c)
print(d)
——————————运行结果————————
2
1
2
1
6. 检测字符串中是否包含子串
6.1 find() 与rfind()方法
用于从字符串左边开始检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引;反之,则返回 -1。**str.find(sub[,start[,end]])**
- str:表示原字符串;
- sub:表示要检索的目标字符串;
- start:表示开始检索的起始位置。如果不指定,则默认从头开始检索;
- end:表示结束检索的结束位置。如果不指定,则默认一直检索到结尾。
rfind()方法用于从字符串右边开始检索字符串中是否包含目标字符串,如果包含,则返回第一次出现该字符串的索引(索引从0开始),反之,则返回 -1。 ```python>>>str="www.baidu.com"
>>>str.find('c')
10
>>> str
str=”www.baidu.com” str.rfind(‘c’) 10
<a name="BI4NL"></a>
### 6.2 index() 与rindex()方法
同 find() 方法类似,index() 方法也可以用于检索是否包含指定的字符串,不同之处在于,当指定的字符串不存在时,index() 方法会抛出异常。<br />`**str.index(sub[,start[,end]])**`<br />同 find() 和 rfind() 一样,字符串变量还具有 rindex() 方法,其作用和 index() 方法类似,不同之处在于它是从右边开始检索。
<a name="jgdvF"></a>
## 7. 字符串对齐方法
<a name="imYyr"></a>
### 7.1 ljust()方法
ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。<br />`** S.ljust(width[, fillchar])**`
- S:表示要进行填充的字符串;
- width:表示包括 S 本身长度在内,字符串要占的总长度;
- fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。
<a name="nHLk5"></a>
### 7.2 rjust()方法
rjust() 和 ljust() 方法类似,唯一的不同在于,rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。<br />`**S.rjust(width[, fillchar])**`
<a name="oeWVn"></a>
### 7.3 center()方法
center() 字符串方法与 ljust() 和 rjust() 的用法类似,但它让文本居中,而不是左对齐或右对齐。<br />`**S.center(width[, fillchar])**`
<a name="csckH"></a>
## 8. `startswith() `和`endswith() `方法
`**startswith() **`方法用于检索字符串是否以指定字符串开头,如果是返回 True;反之返回 False。<br />此方法的语法格式如下:`**str.startswith(sub[,start[,end]])**`<br />此格式中各个参数的具体含义如下:
- str:表示原字符串;
- sub:要检索的子串;**字符串或者字符串元组,不能是列表或者字典**
- start:指定检索开始的起始位置索引,如果不指定,则默认从头开始检索;
- end:指定检索的结束位置索引,如果不指定,则默认一直检索在结束。
`**endswith() **`方法用于检索字符串是否以指定字符串结尾,如果是则返回 True;反之则返回 False。<br />该方法的语法格式如下:`**str.endswith(sub[,start[,end]])**`<br />此格式中各参数的含义如下:
- str:表示原字符串;
- sub:表示要检索的字符串;**字符串或者字符串元组,不能是列表或者字典**
- start:指定检索开始时的起始位置索引(字符串第一个字符对应的索引值为 0),如果不指定,默认从头开始检索。
- end:指定检索的结束位置索引,如果不指定,默认一直检索到结束。
```python
>>> a='http://www.w3cschool.cn/vip'
>>> a.startswith (('http','ftp'))
True
>>> a='http://www.w3cschool.cn/vip'
>>> a.startswith ('http')
True
9. 字符串大小写转换
为了方便对字符串中的字母进行大小写转换,字符串变量提供了 3 种方法,分别是 title()、lower() 和 upper()。这3 个方法都仅限于将转换后的新字符串返回,而不会修改原字符串。
9.1 title()
用于将字符串中每个单词的首字母转为大写,其他字母全部转为小写,转换完成后,此方法会返回转换得到的字符串。如果字符串中没有需要被转换的字符,此方法会将字符串原封不动地返回。**str.title()**
9.2 lower()
lower() 方法用于将字符串中的所有大写字母转换为小写字母,转换完成后,该方法会返回新得到的字符串。如果字符串中原本就都是小写字母,则该方法会返回原字符串。
9.3 upper()
用于将字符串中的所有小写字母转换为大写字母,转换完成后,该方法会返回新得到的字符串。
10. 去除字符串中的空格和特殊字符
可以使用Python中提供的strip()函数去除字符串左右两边的空格和特殊字符,也可以使用lstrip()函数去除字符串左边的空格和特殊字符,或使用rstrip()函数去除字符串中右边的空格和特殊字符。
10.1 strip()
strip()方法用于去掉字符串左、右两侧的空格和特殊字符,**str.strip([chars])**
- str为要去除空格的字符串;chars为可选参数,用于指定要去除的字符,可以指定多个。
如果不指定chars参数,默认将去除空格、制表符\t、回车符\r、换行符\n等。
10.2 lstrip()方法
10.3 rstrip()方法
11. 格式化字符串
格式化字符串的意思是先制定一个模板,在这个模板中预留几个空位,然后再根据需要填上相应的内容。这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来。
11.1 使用%操作符
%操作符用法:
str = "Myname is %s ,My age is %s" %(name,age)
11.2 使用字符串对象的format()方法
字符串对象提供了format()方法用于进行字符串格式化
**str.format(args)**
str用于指定字符串的显示样式(即模板);
- args用于指定要转换的项,如果有多项,则用逗号进行分隔。 ```python format用法:
<a name="le3M6"></a>
### 11.3 f-{}方式格式化
```java
f-{}用法:
name = "Tom"
print(f"我的名字是{name}")