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
相关产品推荐
相关产品推荐

