Так что это функция, которую я имею до сих пор. Он должен читать текстовый файл и возвращать общее количество слов. Мне разрешено использовать только for
петли, while
петли и string.strip()
. По какой-то странной причине он подсчитывает некоторый дополнительный символ из текстового файла, включая новые строки. Вот один из текстовых файлов:Как подсчитать слова в строке, используя только циклы и string.strip()?
Words make up other words. This is a line. Sequences of words make sentences. I like words but I don't like MS Word. There's another word for how I feel about MSWord: @#%&
В этом текстовом файле имеет в общей сложности 33 слов, но моя программа подсчета 34. Каждое предложение на своей собственной линии. Третья строка имеет два ведущих пространства; пятая строка имеет 4 области вкладок.
def countWords(textFileName):
words = 0
for char in textFileName:
if char == " " or char == ".":
words = words + 1
if char != " " and char != ".":
pass
return words
def main():
textFileName = input("Enter textFileName: ")
total = 0
for line in open(textFileName):
total = total + countWords(line)
print(total, "words")
main()
Что вы подразумеваете под «м сложнее, чем line.strip() "? Фактически вы не можете использовать 'str.split'? –
@ das-g Я могу использовать _for loops_, _while_ loops и str.strip(). Никаких других функций Python. – Sergio
В пятой строке вашего файла примера был символ табуляции впереди, а не восемь пробелов. Я изменил его в соответствии с вашим описанием, но это также может изменить результат, который ваш текущий код даст для него. –