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

Python彩虹颜色校验代码循环异常求助:实现输入校验与重试逻辑

问题分析与修复

你的代码存在几个关键问题导致无法正常运行:

  • 变量名拼写错误:初始化的是color_tires,但循环里用的是color_tries,导致尝试次数永远无法累加,循环条件一直成立。
  • 判断逻辑错误:color != rainbow_list是拿输入的字符串和整个列表比较,这永远为真(字符串不可能等于列表),所以永远不会进入正确提示的分支。应该用color not in rainbow_list来判断输入是否不在彩虹颜色列表中。
  • 赋值错误:color_tries =+ 1是将变量赋值为1,而不是累加计数,正确写法是color_tries += 1。
  • 缺少循环终止逻辑:即使输入正确颜色,也没有跳出循环,会继续执行后续的循环判断。

修正后的代码

rainbow_list = ["Red", "Orange", "Yellow", "Green", "Blue", "indigo", "violet"]
color_tries = 0
color = input("enter a color of the rainbow: ")

while color_tries <= 4:
    if color not in rainbow_list:
        color_tries += 1
        # 如果是最后一次尝试,提示剩余次数
        if color_tries == 5:
            print("尝试次数已用完!")
            break
        color = input(f"输入错误,请重新输入彩虹颜色(剩余{4 - color_tries}次机会): ")
    else:
        print("That is a correct color! ")
        break

代码说明

  1. 统一变量名为color_tries,确保计数正常累加。
  2. 使用color not in rainbow_list正确判断输入是否属于彩虹颜色。
  3. 修正计数方式为color_tries += 1,实现尝试次数累加。
  4. 输入正确后通过break跳出循环,避免继续执行。
  5. 增加剩余次数提示和尝试用完的提示,提升用户体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:45:55