You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python While循环运行Scribble Scorer时无法重新计算单词得分如何解决

Scribble Scorer单词计分程序修复方案

问题原因

  • 原代码的计分逻辑仅在程序首次启动时执行一次,totalValue变量第一次计算完成后没有再更新,后续循环输出的始终是第一次的计算结果
  • while循环内仅处理了用户输入和打印逻辑,没有重新遍历单词字符计算分值,也没有每次计算前重置总分变量
  • 原代码中第一次计分时的for循环存在多余缩进的语法问题

修改后可正常运行的代码

# 字母分值表全局仅需定义一次
score_table = {'e': 1, 't': 1.5, 'a': 2, 'i': 2, 'n': 2, 's': 2, 'h': 2.5, 'r': 2.5, 'd': 2.5, 'l': 3, 'u': 3, 'c': 3.5, 'm': 3.5, 'f': 4, 'w': 4.5, 'y': 4.5, 'p': 5, 'g': 5, 'b': 5.5, 'v': 5.5, 'k': 5.5, 'q': 5.5, 'j': 6, 'x': 6, 'z':6}

while True:
    user_input = input('Welcome to the Scribble Scorer; Enter Word:')
    # 输入指定关键词退出循环
    if user_input == 'nothing':
        break
    # 每次计算前重置总分为0
    total_score = 0
    # 遍历当前输入的单词计算分值,转小写兼容大写输入
    for char in user_input.lower():
        if char in score_table:
            total_score += score_table[char]
    print('Word:', user_input, 'Score:', total_score)

核心修改说明

  • 将计分逻辑移入while循环内部,每次输入新单词都会重新执行计算
  • 每次计算前重置总分变量为0,避免不同单词的分值互相累计
  • 优化循环逻辑,减少重复的输入提示代码,增加小写转换逻辑兼容用户大写输入场景
  • 修复了原代码中for循环的缩进错误

内容的提问来源于stack exchange,提问作者Fazli Berisha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 13:54:06