在Python 3.7.0中对字符串使用find和rfind时返回相同的值(使用闲置)

时间:2018-10-21 16:42:16

标签: python string find

Python和Stack Overflow的新用户-第一个问题

我感到困惑的是,为什么我在以下方面获得相同的find和rfind(Python 3.7.0)价值:

>>> string="ooook"
>>> string.rfind('k')             
4
>>> string.find('k')             
4

其中之一应该为0,不是吗?

-rfind在更高版本的Python中进行了更改吗?

-我应该导入一些东西以使用find和rfind吗?

-我的电脑出现本地问题吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是ipython我可以热烈推荐),则可以在命令前键入??,以查看其文档字符串。

string.rfind这样做:

  

文档字符串:

     

S.rfind(sub [,start [,end]])-> int

     

返回 S中找到子字符串sub的最高索引,   这样子包含在S [start:end]中。可选的   参数start和end被解释为切片符号。

     

失败时返回-1。

     

类型:builtin_function_or_method

string.find

  

文档字符串:

     

S.find(sub [,start [,end]])-> int

     

返回 S中找到子字符串sub的最低索引,   这样子包含在S [start:end]中。可选的   参数start和end被解释为切片符号。

     

失败时返回-1。

     

类型:builtin_function_or_method

我大胆地强调了重要部分。

这意味着,如果只找到一个子字符串(即您的情况下为'k'),则两者都将返回相同的索引。

如果您仍然不确定str.rfindstr.find的区别,请尝试以下相同的事情:

string = 'kooook'

希望能帮助您编写愉快的代码!

答案 1 :(得分:0)

据我所知,rfind()find()一样,但是返回最后一个索引。

只有一个“ k”,两个返回相同。 带有“ o”的结果将不同。