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```