I’m writing readability in python for CS50, and I’ve tried so many different Coleman liau index formulas but it still will not work no matter what I do. My letter, word and sentence counters are giving me the correct output.
I’ve been trying for hours to the point where I just copied and pasted an algorithm I found still doesn’t work… and translating from C doesn’t work (from my old code) :/
from cs50 import get_string
def count_sentences(text):
index = 0
length = len(text)
amount_of_sentences = 0
while index < length:
if text[index] == '.' or text[index] == '!' or text[index] == '?':
amount_of_sentences += 1
index += 1
return amount_of_sentences
def count_words(text):
index = 0
length = len(text)
amount_of_words = 0
while index < length:
if text[index] == ' ':
amount_of_words += 1
index += 1
amount_of_words += 1
return amount_of_words
def count_letters(text):
index = 0
length = len(text)
amount_of_letters = 0
while index < length:
if (text[index].isalpha() and text[index] == ' ') == False:
amount_of_letters += 1
index += 1
return amount_of_letters
def algorithm(text):
words = count_words(text)
letters = count_letters(text)
sentences = count_sentences(text)
print(words, letters, sentences)
return 0.0588 * (letters / words * 100) - 0.296 * (sentences / words * 100) - 15.8
text = get_string("Text: ")
grade_level = algorithm(text)
print(grade_level)
if grade_level < 1:
print("Before Grade 1")
elif grade_level >= 16:
print("Grade 16+")
else:
print("Grade", round(grade_level))
Advertisement
Answer
The problem was my count_letters() function :/ . The and text[index] == ' ') == False was the problem
def count_letters(text):
index = 0
length = len(text)
amount_of_letters = 0
while index < length:
if text[index].isalpha():
amount_of_letters += 1
index += 1
return amount_of_letters```