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

如何用Python实现输入数字匹配数组指定字符串的校验功能

实现数字输入转颜色并匹配验证

核心思路是建立数字与颜色代码、名称的统一映射,通过该映射完成输入转换与匹配检查,同时修正原代码中颜色代码与单词可能不对应的问题。

修改后的完整代码

import random
from colorama import *

# 初始化colorama,确保Windows系统颜色输出正常
init(autoreset=True)

# 建立数字→(颜色代码, 颜色名称)的映射字典
color_map = {
    "1": (Fore.RED, "Red"),
    "2": (Fore.BLUE, "Blue"),
    "3": (Fore.LIGHTBLUE_EX, "Light Blue"),
    "4": (Fore.GREEN, "Green"),
    "5": (Fore.CYAN, "Cyan"),
    "6": (Fore.YELLOW, "Yellow"),
    "7": (Fore.MAGENTA, "Magenta"),
}

# 打印随机颜色的提示语
start_colors = [item[0] for item in color_map.values()]
print(random.choice(start_colors) + "Type the number, not the color!\n")

# 遍历映射字典打印数字-颜色对应表
for num, (color_code, color_name) in color_map.items():
    print(f"{color_code}{num} = {color_name}")

# 随机生成目标颜色(确保颜色代码与名称对应)
target_color_code, target_color_name = random.choice(list(color_map.values()))
print(f"\n{target_color_code}{target_color_name}")

# 处理用户输入与匹配检查
user_input = input("\n请输入对应数字:").strip()

if user_input not in color_map:
    print(Fore.RED + "输入无效,请输入1-7之间的数字!")
else:
    _, user_selected_color = color_map[user_input]
    if user_selected_color == target_color_name:
        print(Fore.GREEN + "回答正确!")
    else:
        print(Fore.RED + f"回答错误,正确答案是{target_color_name}!")

关键改进点

  • 统一映射管理:用字典集中存储数字、颜色代码、颜色名称的对应关系,避免原代码中手动打印选项与实际逻辑脱节的问题,后续扩展颜色更高效。
  • 颜色与单词匹配:随机生成目标时直接从映射中取对应的数据,确保打印的颜色代码和单词是匹配的(原代码存在颜色代码与随机单词不对应的bug)。
  • 输入有效性检查:判断输入是否在合法范围内,给出明确的错误提示,提升程序健壮性。
  • 匹配逻辑清晰:通过映射直接获取用户输入对应的颜色名称,与目标名称对比即可完成验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:24:52