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

Python无法将输入的猜测字母保存到列表变量,该如何处理?

猜字母逻辑代码问题修复

问题根因

  • 代码执行顺序错误:old_letters_guessed.append()、打印列表的逻辑放在了所有return分支之后,函数执行到return就会直接终止,这两行代码永远不会被触发,自然无法存储新猜的字母。
  • 逻辑顺序错误:需要先完成有效字母的存储,再返回布尔结果,不能先返回再执行存储操作。
  • 额外的拼写问题:原函数注释里的参数名letter_guesses和实际定义的参数letter_guessed不一致,已同步修正。

修正后代码

letter_guessed = input("please guess a letter").lower()    
old_letters_guessed = []

def check_valid_input(letter_guessed, old_letters_guessed):
    """
    这个函数会检查输入的猜测是否符合规则
    :param letter_guessed: 用户输入的猜测字母
    :type letter_guessed: str
    :param old_letters_guessed: 已经猜过的字母列表
    :type old_letters_guessed: list
    :return: 猜测符合规则返回True,否则返回False
    :rtype: bool
    """
    if letter_guessed.isalpha() and len(letter_guessed) == 1 and letter_guessed not in old_letters_guessed:
        # 验证通过后先存入已猜列表,再返回结果
        old_letters_guessed.append(letter_guessed)
        print(old_letters_guessed)
        return True
    else:
        return False 

check_valid_input(letter_guessed, old_letters_guessed)

补充说明

列表属于Python可变对象,函数内部对传入的列表执行append操作,会直接修改全局的old_letters_guessed变量,不需要额外返回列表就能同步存储结果。如果需要实现多次循环猜测,把用户输入、函数调用的逻辑放到循环结构中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:09:03