在Python 3.7.0中对字符串使用find和rfind时返回的值相同(使用idle)
Python和堆栈溢出的新手用户-第一个问题 我感到困惑的是,为什么我在以下方面得到了相同的find和rfind值(Python 3.7.0):在Python 3.7.0中对字符串使用find和rfind时返回的值相同(使用idle),python,string,find,Python,String,Find,Python和堆栈溢出的新手用户-第一个问题 我感到困惑的是,为什么我在以下方面得到了相同的find和rfind值(Python 3.7.0): >>> string="ooook" >>> string.rfind('k') 4 >>> string.find('k') 4 其中一个应该是0,不是吗 -rfind在Python的更高版本中是否已更改 -我应该导入一些东西来使用find和r
>>> string="ooook"
>>> string.rfind('k')
4
>>> string.find('k')
4
其中一个应该是0,不是吗
-rfind在Python的更高版本中是否已更改
-我应该导入一些东西来使用find和rfind吗
-我的电脑出现本地问题?据我所知,
rfind()
执行与find()
相同的操作,但返回最后一个索引
由于只有一个“k”,两个“k”返回相同的值。
使用“o”,结果将不同 如果您正在使用(我可以热情推荐),您可以在命令之前键入?
,以查看其文档字符串
对string.rfind执行以下操作:
文档字符串:
S.rfind(sub[,start[,end]])->int
返回在S中找到子字符串sub的最高索引,
使sub包含在S[start:end]中。可选择的
参数start和end解释为切片表示法
失败时返回-1
类型:内置函数或方法
对于字符串。查找:
文档字符串:
S.find(sub[,start[,end]])->int
返回S中找到子字符串sub的最低索引,
使sub包含在S[start:end]中。可选择的
参数start和end解释为切片表示法
失败时返回-1
类型:内置函数或方法
我冒昧地强调了重要部分
这意味着,如果只找到一个子字符串(即在您的情况下,'k'
),则两者都将返回相同的索引
如果您仍然不确定str.rfind
和str.find
之间的区别,请尝试以下方法:
string = 'kooook'
希望对大家有帮助,编码快乐 索引4
处只有一个k
。find
和rfind
都应该给出4
。怎么了?为什么期望0?rfind(char)
提供该char最右边出现的索引。请注意,您并不是从右侧建立索引。谢谢。根据您的回答,我了解了find和rfind的实际功能,这是我最初误解的。谢谢(现在我意识到了这一点,我正试图从出现k的字符串的开头和开始处获得字符数,这将需要额外的步骤)