我正在尝试重新创建s.find('substring')函数。我遇到的两个问题如下:1)能够找到起始索引,例如:
Enter a phrase please"my best test ever!"
Enter a word you wish to find"best"
found first instance of letter at, 0
found first instance of letter at, 19
>>>
2)假设已找到正确的索引,我希望此代码段指示是否或
并非整个子字符串都在字符串内:
str2 in str1[i:len(str1)]
每当我在空闲状态下独立于主循环进行测试时,它均无法正常工作。
这是我的主要代码:
str1 = input("Enter a phrase please")
str2 = input("Enter a word you wish to find")
for i in range(len(str1)):
if str2[0] == str1[i]:
print("found first instance of letter at, ", i)
str2 in str1[i:len(str1)]
任何建议将不胜感激,谢谢大家!
最佳答案
您的循环应该可以正常工作,但是您在str2 in str1[..]
测试中没有做任何事情,也没有正确计算终点。您确实要在这里使用str2
的长度。
您可以直接在str1
上循环并使用enumerate()
function添加索引。您需要将len(str2)
结果添加到i
以找到端点,并使其打印出测试。我在这里使用==
,因为结果切片应该是相同的字符串:
for i, char in enumerate(str1):
if str2[0] == char:
print("found first instance of letter at,", i)
print(str2 == str1[i:i + len(str2)])
演示:
>>> str1 = 'my best test ever!'
>>> str2 = 'best'
>>> for i, char in enumerate(str1):
... if str2[0] == char:
... print("found first instance of letter at, ", i)
... print(str2 == str1[i:i + len(str2)])
...
found first instance of letter at, 3
True
关于python - 重新创建内置的s.find('substring')函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22134243/