Как считать слова в строке в python

Я хочу иметь возможность вводить слово, а python подсчитывать количество слов до этого слова в предыдущем абзаце.

Это для программы, которая поможет вам узнать, сколько слов вы можете прочитать за одну минуту. Распечатывается абзац и устанавливается таймер на одну минуту. Когда минута заканчивается, пользователь вводит слово, которое он дошел до абзаца, и программа должна сообщить вам, сколько слов вы прочитали до этого слова.

print ('write start to begin the program')
x = ('')

if x == (''):
    x = input()

if x == 'start':
    import threading 
    def yyy(): 
        print("time is up")
        print('write the last word you read')
        word = input()
        #MISSING CODE

    timer = threading.Timer(10.0, yyy) 
    timer.start()
    print ('paragraph to read')

это сокращено, но мне нужна функция для python, чтобы подсчитывать слова в абзаце ДО того, что пользователь вводит, когда время истекло, и печатать это число


person Manuel    schedule 07.10.2019    source источник
comment
Почему вы пишете if x == (''):? Что еще это может быть, раз вы просто присвоили его в предыдущей строке? Также нет необходимости ставить () рядом с ''.   -  person Barmar    schedule 07.10.2019
comment
Добро пожаловать в Stack Overflow! StackOverflow не является бесплатной службой кодирования. Ожидается, что вы попытаетесь решить проблему. первый. Обновите свой вопрос, чтобы показать, что вы уже пробовали, в минимально воспроизводимом примере. Для получения дополнительной информации см. раздел Как задать вопрос и воспользуйтесь тур :)   -  person Barmar    schedule 07.10.2019
comment
Разделите абзац на список слов. Затем вы можете использовать words.find(word), чтобы получить индекс слова, которое вводит пользователь.   -  person Barmar    schedule 07.10.2019


Ответы (1)


Вы можете использовать split(), чтобы разделить строку абзаца на список слов:

#paragraph_text = "One two three four"
words = paragraph_text.split(' ')
#words = ["One", "two", "three", "four"]

Затем вы можете просмотреть этот список, сравнивая его со словом, введенным пользователем:

for counter, candidate in enumerate(words):
    if candidate == word:
        print("You have read %s words!" % (counter + 1))
        #Other actions
        break

Это очень упрощенная реализация; это не будет работать, если есть повторяющиеся слова и т. д.

person Brett Warren    schedule 07.10.2019