谁能发现这个问题?每次我的索引都为负数,所以它总是打印“Before Grade 1”。我尝试做一些正则表达式,但我仍然不知道如何真正实现它import refrom cs50 import get_stringwords = 1letters = 0sentences = 0st = get_string("Text: ")t = len(st)regex = r'\w+'output = re.findall(regex,st)for i in range(t): if st.isalpha(): letters += 1 if st.isspace(): words += 1 if st[i] == '.' or st[i] == '!' or st[i] == '?': sentences += 1L = (letters / words * 100)S = (sentences / words * 100)index = 0.0588 * L - 0.296 * S - 15.8roundedIndex = round(index)if roundedIndex < 1: print("Before Grade 1")if roundedIndex >= 16: print("Grade 16+")else: print(roundedIndex)
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
在您的循环中,您正在检查整个字符串是按字母顺序排列还是空格,而不是与索引对应的字母是否i是。你可能想要st[i].isalpha()和st[i].isspace().
或者,您可以直接遍历字符,而不是遍历索引:
for char in st:
if char.isalpha():
...
if char.isspace():
...
添加回答
举报
0/150
提交
取消