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

如何实现字典values求和与缺失keys的反馈功能?

解决方案

针对你提出的两个功能需求,我对代码做了如下修改,同时保留清晰的逻辑结构:

修改后的代码

skills = {
    "python": 1,
    "ruby": 2,
    "bash": 4,
    "git": 8,
    "html": 16,
    "tdd": 32,
    "css": 64,
    "javascript": 128
}

# 处理用户输入:拆分技能、去除空格、统一小写避免大小写匹配问题
user_input = input("Enter your coding skills out of the following - python, ruby, bash, git, html, tdd, css and javascript: ")
user_skills_list = [skill.strip().lower() for skill in user_input.split(',')]

score = 0
invalid_skills = []

# 遍历用户输入的技能,计算得分并收集无效项
for skill in user_skills_list:
    if skill in skills:
        score += skills[skill]
    else:
        invalid_skills.append(skill)

# 输出得分
print("Your coding skills score is:", score)

# 提示无效输入的技能
if invalid_skills:
    print("注意:以下输入不在预设技能列表中:")
    for skill in invalid_skills:
        print(f"- {skill}")
    print("\n预设技能及对应分值:")
    for key, value in skills.items():
        print(f"- {key}: {value}")

# 若需要提示「未输入的预设技能」,可添加以下代码块
# missing_skills = [key for key in skills if key not in user_skills_list]
# if missing_skills:
#     print("\n你未输入的预设技能及其分值:")
#     for key in missing_skills:
#         print(f"- {key}: {skills[key]}")

核心修改说明

  • 多技能输入支持:用split(',')将用户输入拆分为单个技能列表,配合strip()和lower()处理输入格式问题,避免因空格、大小写导致的匹配失败
  • 得分计算逻辑:遍历拆分后的技能列表,直接判断技能是否在字典中,累加对应分值
  • 无效/缺失技能提示:
    • 收集不在字典中的输入项,统一告知用户
    • 注释部分的代码可实现「提示用户未输入的预设技能」功能,按需启用即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:32:26