为了账号安全,请及时绑定邮箱和手机立即绑定

cs50 pset6 可读性得到错误等级和负索引

cs50 pset6 可读性得到错误等级和负索引

米琪卡哇伊 2022-10-11 21:16:56
谁能发现这个问题?每次我的索引都为负数,所以它总是打印“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():

        ...


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信