在python中,如何使用for循环查找在句子中出现多次的单词的位置?

时间:2015-11-07 21:19:10

标签: python string python-2.7 for-loop substring

基本上,我需要创建一个python 2.7程序,用户输入一个句子,然后输入一个单词,如果单词在句子中,程序会显示其位置。如果单词不在句子中,程序需要输出一条错误信息,上面写着"单词不在句子中#34;。句子和单词不能区分大小写,程序必须使用for循环。我的尝试是可怕的,但这是我尝试过的:

sentence = raw_input("enter your sentence: ")

word = raw_input("enter word: ")

len(sentence)

for i in range(int(sentence)):

    print sentence.find(word)

我的代码输出:

enter your sentence: hello bob my name is bob too
enter word: bob

Traceback (most recent call last):
  File "C:\GCSE Python\CPCA- Task 1 Code.py", line 5, in <module>
    for i in range(int(s1)):
ValueError: invalid literal for int() with base 10: 'hello bob im bob too'
>>> 

1 个答案:

答案 0 :(得分:1)

你可以这样做:

>>> s='hello bob my name is bob too'
>>> ss='bob'
>>> [i for i in range(len(s)) if s.startswith(ss, i)]
[6, 21]

或者,作为for循环:

for i in range(len(s)):
    if s.startswith(ss, i):
        print i

或稍微好一些,因为你没有在Python 2中创建无用的range列表:

for i, _ in enumerate(s):
    if s.startswith(ss, i):
        print i