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

Python秘密单词猜词程序字符判断错误求助

问题排查与修正方案

核心错误点

  • 字符串直接比较而非长度比较:你把秘密短语的长度转成了字符串guess_1/guess_2,然后直接拿用户输入的字符串phrase和这些字符串做大小比较——这是按字典序比对,不是比较字符长度。比如输入单个字母'A',和字符串'10'(BRINGCOFFEE的长度是10)比较时,字典序'A' > '1',所以错误触发"Too Many Characters"。
  • 循环条件逻辑错误:while(secret != True)完全不成立,因为字符串secret永远不可能等于布尔值True,循环会无限运行。
  • 大小写未统一:secret是大写格式,但用户输入可能是小写,导致即使输入正确内容也无法匹配。

修正后的代码

secret = 'BRINGCOFFEE'
secret_length = len(secret)  # 直接存储数字长度,无需转字符串

while True:
    phrase = input('Guess the Secret phrase! \nGuess:').strip().upper()  # 统一转大写并去除首尾空格
    phrase_length = len(phrase)
    
    if phrase_length == 0:
        print('Too Few Characters')
    elif phrase_length < secret_length:
        print('Too Few Characters')
    elif phrase_length > secret_length:
        print('Too Many Characters')
    else:
        # 长度匹配时再检查内容是否正确
        if phrase == secret:
            print('You got it!')
            break
        else:
            print('Wrong phrase, try again!')

关键修正说明

  • 用secret_length存储秘密短语的数字长度,拿用户输入的phrase_length(输入内容的长度)和它做数值比较,这才是正确的长度判断逻辑。
  • 统一把用户输入转成大写,同时去除首尾空格,避免大小写不匹配或输入空格导致的错误。
  • 循环改成while True,当用户猜对时通过break终止循环,逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:05:27