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

Python编写的猜单词游戏无法将猜对的字母替换对应下划线如何解决

Python猜字母游戏问题修复

原有代码核心问题

  • print()函数返回值为None,你将print('_', end='')的返回值赋值给变量e,后续针对e的计数、替换操作全部无效
  • 没有独立变量存储游戏进度,已猜对的字母状态没有地方记录,自然无法更新下划线序列
  • 函数fun定义在while循环内部,逻辑错误,替换逻辑完全不成立
  • 没有更新剩余未猜字母的计数逻辑,循环会无限执行

修复后完整代码

import random
import time
from typing import List

# 候选单词库
word_list = ['dog','cat','bird','chair']
# 随机选择待猜单词
target_word = list(random.choice(word_list))
# 初始化显示状态:全部为下划线,和待猜单词长度一致
display_state = ["_"] * len(target_word)

def show_current_state():
    """输出当前游戏进度"""
    for char in display_state:
        print(char, end=' ')
        time.sleep(0.25)
    print()

# 首次展示初始下划线序列
show_current_state()

# 循环游戏直到所有字母被猜中
while "_" in display_state:
    guess = input('\n请输入你猜的字母:\n').strip()
    # 输入合法性校验
    if len(guess) != 1:
        print("请输入单个字母")
        continue
    # 猜对则替换所有对应位置的下划线
    if guess in target_word:
        for idx, char in enumerate(target_word):
            if char == guess:
                display_state[idx] = guess
    # 输出最新进度
    show_current_state()

print("恭喜你猜对了所有字母,游戏结束!")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:45:03