Loading...
墨滴

瀋凣

2021/11/05  阅读:35  主题:极简黑

python笔记22

Python day22

1. 字符串

1.3 查找

1.3.1 count()

count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

语法
str.count(sub, start= 0,end=len(string))
#sub -- 搜索的子字符串
#start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
#end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
举个栗子:
>>> x = "上海自来水来自海上"
>>> x.count("海")
2
#该方法返回子字符串在字符串中出现的次数。
>>> x.count("海",0,5)
1

1.3.2 find() & rfind()

find() 方法用于返回字符串里某个字符出现的位置。可选参数为在字符串搜索的开始与结束位置。

rfind() 返回字符串最后一次出现的位置。

语法
str.find(str, beg=0, end=len(string))
str.rfind(str, beg=0 end=len(string))
#str -- 指定检索的字符串
#beg -- 开始索引,默认为0。
#end -- 结束索引,默认为字符串的长度。
举个栗子:
>>> x.find("海")
1
#返回字符串里某个字符第一次出现的位置
>>> x.rfind("海")
7
#返回字符串最后一次出现的位置。
>>> x.rfind("海",0,4)
1

1.3.3 index() & rindex()

index() 方法用于返回字符串里某个字符出现的位置。可选参数为在字符串搜索的开始与结束位置。

rindex() 返回字符串最后一次出现的位置。

语法
str.rindex(str, beg=0 end=len(string))
#str -- 查找的字符串
#beg -- 开始查找的位置,默认为0
#end -- 结束查找位置,默认为字符串的长度。
举个栗子:
>>> x.index("海")
1
#返回字符串里某个字符第一次出现的位置
>>> x.rindex("海")
7
#返回字符串最后一次出现的位置。
>>> x.rindex("海",0,4)
1

这时候就有同学发出了疑惑的声音:

猫猫问号.jpg
猫猫问号.jpg

“这index()find()不是一样的吗?为什么要分成两个方法呢?”

当你要查找的字符串存在于原字符串时,它俩雀食一样的,但是如果你要查找的字符串不存在,他俩就有大区别了。

举个栗子:
>>> x
'上海自来水来自海上'
>>> x.find("淦")
-1
>>> x.index("淦")
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ValueError: substring not found

我们发现,当要查找的字符串不存在时,find()会返回-1,而index()会直接报错。

1.4 替换

1.4.1 expandtabs()

expandtabs()方法把字符串中的tab符号转为空格,tab 符号默认的空格数是8

语法
str.expandtabs(tabsize=8)
#tabsize -- 指定转换字符串中的 tab 符号转为空格的字符数。
举个栗子:
>>> str1 = """
        hello python
    hello python"""

>>> print(str1)
        hello python
    hello python
>>> str2 = str1.expandtabs(4)
#该方法返回字符串中的 tab 符号转为空格后生成的 新 字符串。
>>> print(str2)

    hello python
    hello python

1.4.2 replace()

replace()方法把字符串中的 old(旧字符串)替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法
str.replace(old, new[, max])
#old -- 将被替换的子字符串。
#new -- 新字符串,用于替换old子字符串。
#max -- 可选字符串, 替换不超过 max 次
举个栗子:
>>> singleDog = "呵呵,你忙吧"
>>> singleDog.replace("呵呵","哈哈")
'哈哈,你忙吧'
>>> c = "呵呵你个呵呵,你就是个大呵呵,你去呵呵吧,呵呵!"
>>> c.replace("呵呵","**",3)
'**你个**,你就是个大**,你去呵呵吧,呵呵!'

1.4.3 translate()

translate()方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到deletechars参数中。

语法
str.translate(table)
#table -- 翻译表,翻译表是通过 maketrans() 方法转换而来。
1.4.3.1 maketrans()

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
两个字符串的长度必须相同,为一一对应的关系。

语法
str.maketrans(intab, outtab)
#intab -- 字符串中要替代的字符组成的字符串。
#outtab -- 相应的映射字符的字符串。

举个栗子:
移位密码
移位密码
>>> table = str.maketrans('abcdefghijklmnopqrstuvwxyz','defghijklmnopqrstuvwxyzabc')
>>> 'hello python'.translate(table)
'khoor sbwkrq'
“百度百科如是说”
“百度百科如是说”
>>> table = str.maketrans('abcdefghijklmnopqrstuvwxyz','qwertyuiopasdfghjklzxcvbnm')
>>> 'hello python'.translate(table)
'itssg hnzigf'
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/11/05  阅读:35  主题:极简黑

作者介绍

瀋凣