0

我有一个问题,我真的不知道从哪里开始

s1.find(s2)

任何帮助,将不胜感激。

变量 s1 和 s2 指的是 strs。表达式 s1.find(s2) 返回 s2 在 s1 中第一次出现的索引。表达式 s1.find(s2, 5) 返回 s1 中第一次出现 s2 的索引,从 s1 中的索引 5 开始。(有关更多信息,请参阅帮助(str.find))

编写一个表达式,生成 s2 在 s1 中第二次出现的索引。如果 s2 在 s1 中没有出现两次,则表达式应该产生 -1。与 str.count 不同,您应该允许 s2 重叠出现。

例如,如果 s1 是“banana”而 s2 是“ana”,那么您的表达式应该返回 3。如果 s1 是“apple”而 s2 是“p”,那么您的表达式应该返回 2。

您的答案必须是不使用方括号(字符串索引和切片)的单个表达式,并且您只能调用 str.find 方法并使用算术运算符(+、- 等)。

4

2 回答 2

5

这将打印 3。

s1 = 'banana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)

这打印-1。

s1 = 'bana'
s2 = 'ana'
second_index = s1.find(s2, s1.find(s2)+1)
print(second_index)

因此,您可能正在寻找的表达式是s1.find(s2, s1.find(s2)+1).

于 2013-09-11T23:48:04.020 回答
1

请阅读文档以获取线索:

http://docs.python.org/2/library/string.html

于 2013-09-12T00:01:26.537 回答