为什么python在字符串中显示相同字符的相同索引值?

时间:2017-03-19 12:52:44

标签: python-2.7

我正在尝试在字符串“python program”中打印字符'p'的所有出现。它显示相同的索引值为0,字符串中的'p'而不是0和7。

str = raw_input("enter a string:")
sub = raw_input("enter a sub string:")
for i in str:
    if i.lower() == sub.lower():
        print i, str.index(i)

输出:

enter a string:python program
enter a sub string:p
p 0
p 0

1 个答案:

答案 0 :(得分:0)

以下是解决方案的建议:

sub = raw_input("enter the sub string you're looking for: ")
string = raw_input("enter the text you're looking in: ")

def get_next(text, sub):
    for i in range(len(text)+1):
        pos = text.find(sub, i)
        if pos == -1 :  #if no occurrences, do nothing  
            break
        if i == pos: #would print the sub and the pos only if pointer in correct position
            print sub, pos

get_next(string, sub)

你可以使用while循环而不是函数,但是如果你想多次使用代码,我觉得函数会更方便。