34 lines
903 B
Python
34 lines
903 B
Python
|
from cs50 import get_string
|
||
|
|
||
|
# initializing default values for variables
|
||
|
letters = 0
|
||
|
words = 1
|
||
|
sentences = 0
|
||
|
|
||
|
# getting string from user and looping through each character
|
||
|
user_input = get_string("Text:")
|
||
|
n = len(user_input)
|
||
|
|
||
|
for i in range(n):
|
||
|
ascii_code = ord(user_input[i])
|
||
|
# counting letters based on ascii values from a-z & A-Z
|
||
|
if 65 <= ascii_code <= 122:
|
||
|
letters += 1
|
||
|
# counting words based on ascii value for space
|
||
|
elif ascii_code == 32:
|
||
|
words += 1
|
||
|
# counting sentences based on ascii value for ".","!","?"
|
||
|
elif ascii_code == 33 or ascii_code == 63 or ascii_code == 46:
|
||
|
sentences += 1
|
||
|
# calculating Coleman-Liau index
|
||
|
let = letters / words * 100
|
||
|
s = sentences / words * 100
|
||
|
index = round(0.0588 * let - 0.296 * s - 15.8)
|
||
|
|
||
|
if index < 1:
|
||
|
print("Before Grade 1")
|
||
|
elif index >= 16:
|
||
|
print("Grade 16+")
|
||
|
else:
|
||
|
print("Grade " + str(index))
|