Как убедиться, что я считаю правильное количество слов в строке, если между словами есть несколько пробелов? - PullRequest
0 голосов
/ 25 марта 2019

Я пишу функцию в Python 3 под названием word_count (которая принимает параметр, который я назвал my_string), который должен подсчитывать количество слов в строке. Строка может содержать слова с несколькими пробелами (например, привет), и функция должна иметь возможность считать, что это два слова. Я не должен использовать какие-либо встроенные функции Python, и я использую try-кроме того, если я сталкиваюсь с какими-либо ошибками (например, если интересует значение, которое не является строкой, за исключением того, что будет выполнено возвращение "Не строка «

Мне удалось написать функцию, и я создал переменную счетчика numspaces, которую я инициализировал значением 0. Затем я пишу try, затем цикл for с индексной переменной current_character, которая будет проходить через все текущие символы в my_string. Я написал условное высказывание, если current_character равен пробелу, нумерации должны увеличиваться на единицу, а numwords (переменная, которую я использую для подсчета общего количества слов в строке) равна numspaces + 1. Затем я написал оператор else if, который говорит, что numspaces равен 0, numwords = 1 и возвращает numwords. Если обнаружена ошибка, я написал исключение, которое возвращает «Не строка»

def word_count(my_string):
    numspaces = 0
    try:
       for current_character in my_string:
        if current_character == " ":
            numspaces += 1
            numwords = numspaces + 1
        elif numspaces == 0:
            numwords = 1
       return numwords
    except:
       return "Not a string"

Ниже приведены некоторые контрольные примеры и ожидаемые результаты при использовании контрольных примеров:

Word Count: 4
Word Count: 2
Word Count: Not a string
Word Count: Not a string
Word Count: Not a string

print("Word Count:", word_count("Four words are here!"))
print("Word Count:", word_count("Hi   David"))
print("Word Count:", word_count(5))
print("Word Count:", word_count(5.1))
print("Word Count:", word_count(True))

Когда я запускаю написанный мной код, я получаю следующий вывод:

Word Count: 4
Word Count: 4
Word Count: Not a string
Word Count: Not a string
Word Count: Not a string

Я не уверен, как настроить мой код, чтобы учесть что-то вроде Test Case 2 («Привет, Дэвид»)

1 Ответ

0 голосов
/ 25 марта 2019

Есть как минимум два варианта:

  1. Замените все двойные пробелы, пока у вас не останется только один пробел, прежде чем вы начнете считать
  2. Следите, каким был предыдущий персонаж и добавьте дополнительные условия
...