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

