Python查找最高得分单词,函数封装后遍历异常问题求助
Python单词得分查找函数问题修复
原有代码的核心问题
- 提前终止遍历:
return语句写在单词遍历循环内部,处理完第一个匹配条件的单词就直接退出函数,不会遍历剩余所有单词 - 语法调用错误:
total是单个整数,调用max(total)属于非法操作,会直接抛出类型错误 - 缺少必要存储变量:仅记录了最高得分的数值,没有存储对应的单词内容,无法返回需求要求的结果
修复后的完整代码
import string def high(x): alphabet = string.ascii_lowercase sentence = x.split() high_total = 0 high_score_word = "" for word in sentence: total = 0 for pos in word: if pos in alphabet: total += ord(pos) - 96 # 得分更高时同步更新得分和对应单词 if total > high_total: high_total = total high_score_word = word # 遍历完全部单词后再返回结果 return high_score_word print(high("the testingg"))
运行上述代码会正确输出得分最高的单词:testingg
额外优化提示
将import string放在函数顶部而非函数内部,是Python的通用最佳实践,可以避免每次调用函数时重复执行导入逻辑,小幅提升执行效率。
内容的提问来源于stack exchange,提问作者Uche24
相关产品推荐
相关产品推荐

