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

Python开发猜单词游戏时无法替换列表中下划线字符问题

问题原因
  • 缺失random模块导入语句,无法调用random.choice方法
  • 猜对字母后的替换逻辑错误:原有代码遍历占位符列表直接替换所有下划线、追加新元素,没有匹配目标单词的字母位置,会导致占位符列表长度异常
  • 未添加游戏胜利判断逻辑,全部字母猜对后不会提前终止循环
  • 读取文件后未主动关闭资源,存在溢出风险
修正后可运行代码
import random

def main():
    # 用with上下文管理器自动处理文件关闭,避免资源泄漏
    with open("wp_instructions.txt" , "r") as f:
        read = f.read()
    print(read)
    
    guesses = 4
    word_list = ['apple', 'banana', 'watermelon', 'kiwi', 'pineapple', 'mango']
    word = random.choice(word_list)
    word_puzzle = ["_"] * len(word)
    
    while guesses > 0 :
        # 将列表转为空格分隔的字符串打印,更符合游戏常规显示效果,可根据需求改回原列表输出格式
        print("当前猜词进度:" , ' '.join(word_puzzle))
        
        # 统一转小写处理,避免大小写匹配偏差
        user_guess = input(f"请输入你猜的字母(剩余猜测次数:{guesses}):").lower()
        
        if user_guess in word:
            # 遍历目标单词的索引和对应字母,匹配到就替换对应位置的占位符
            for idx, letter in enumerate(word):
                if letter == user_guess:
                    word_puzzle[idx] = user_guess
            # 判断是否已猜对全部字母
            if "_" not in word_puzzle:
                print(f"恭喜你获胜!正确单词是:{word}")
                break
        else :
            guesses -= 1
    # 循环结束仍存在下划线说明猜测次数耗尽
    if "_" in word_puzzle:
        print(f"很遗憾你用完了所有猜测机会,正确单词是:{word}")
    
main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:09:04