Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 3.7.0中对字符串使用find和rfind时返回的值相同(使用idle)_Python_String_Find - Fatal编程技术网

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

在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

Python和堆栈溢出的新手用户-第一个问题

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

>>> 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的字符串的开头和开始处获得字符数,这将需要额外的步骤)