(小甲鱼python)字符串系列笔记合集二 第二课、字符串II总结(计算字符串中元素出现的次数count()、查找字符串中的元素find()、填充空格使tab等于对应得空格数、对字符串进行替换)

一、字符串II总结

1.计算字符串中元素出现的次数

x.count(sub[, start[, end]]) 方法是返回 sub 在字符串中不重叠的出现次数。什么叫“不重叠”呢?就是一个元素不能被重复匹配。

>>> x="上海自来水来自海上"
>>> x.count("海")
2
>>> x.count("海",0,5)   #字符串从左到右1到6查找
1

2.查找字符串中的元素

x.find() 字符串中元素第一次出现的位置
x.rfind() 从右往左找返回字符串中一次出现元素的下标索引值
x.index() 索引下标值查找

find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。
find()函数语法

str.find(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。

>>> str1 = "this is string example....wow!!!";
>>> str2 = "exam";
>
>>> str1.find(str2)
15
>>> str1.find(str2,10)   # #查找字符串str2,下标索引从10开始
15
>>> str1.find(str2,10,19)
15

>>> info = 'abca'
>>> info.find('a')
0
>>> info.find('a',1)  #查找字符串a,下标索引从1开始
3
>>> info.find('1')   #不存在返回-1
-1
>>> info.find('c')
2
>>> 

字符串中找不到元素

>>> x.rfind("海")		#从右往左找
7
>>> x.find("龟")         #字符串中找不到元素返回-1
-1
>>> x.index("龟")
Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    x.index("龟")
ValueError: substring not found

3.填充空格使tab等于对应得空格数

code.expandtabs(4) 填充空格使tab等于对应得空格数

>>> code="""
				print("I love Fishc")
    print("I love my wife")"""


>>> new_code=code.expandtabs(4)
>>> print(new_code)

    print("I love Fishc")
    print("I love my wife")

4.对字符串进行替换
方法1:

" 字符串1,字符串2".replace(“字符串2”,“字符串3”)

>>> "在吗!我在你家楼下,快点下来!!".replace("在吗","想你")
'想你!我在你家楼下,快点下来!!'

方法2:

translate(table) 返回一个根据table参数转换后的新字符串,table这里指的是一个转换规则的表格。
table一般是用str.maketrans(x[,y[,z]])这个方法来获取

>>> table=str.maketrans("ABCDEFG","1234567")    
# 1234567替换成ABCDEFG
# str.maketrans()       字符串的一个静态方法
>>> "I love Fishc".translate("1234567")   
'I love Fishc'
>>> "I love Fishc".translate(table)
'I love 6ishc'
>>> "I love Fishc".translate(str.maketrans("ABCDEFG","1234567"))
'I love 6ishc'
>>> "I love Fishc".translate(str.maketrans("ABCDEFG","1234567","love"))   #忽略love这个字符串
'I  6ishc'
>>>  

在这里插入图片描述

另一种写法:“I love Fishc”.translate(str.maketrans(“ABCDEFG”,“1234567”))

H="I love Fishc.com"
J="ABCDEFG"
K="1234567"

print(H.translate(str.maketrans(J,K)))

课后题:
3. 请问下面代码执行的结果(为了你可以更容易地计数,下面使用 * 表示空格)?

Hello***FishC
Hello*FishC
Hello*****FishC
Hello*****FishC

制表键(tab)
在这里插入图片描述4. 请问下面代码打印的结果是什么?

>>> "I love FishC.com".translate(str.maketrans("ABCDEFG", "12345678"))

答:报错。
解析:str.maketrans() 方法要求两个构成映射关系的参数必须是等长的。另外,也必须是参数的类型也必须是字符串才行哦。
5. 请问下面代码打印的结果是什么?

>>> "I love FishC.com".translate(str.maketrans("love", "1234", "love"))

答:‘I FishC.cm’
解析:str.maketrans() 方法是先执行替换还是先执行忽略操作。事实证明,如果传入了第 3 个参数,那么它是先忽略掉 ‘l’、‘o’、‘v’、‘e’ 4 个字符,然后再执行替换操作。

题目来自链接: 小甲鱼python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值