Python如何替换字符串中指定字符?Hangman游戏开发作业相关问题
Python Hangman猜词游戏字符串替换问题解决方案
问题根源
- Python 字符串是不可变对象,无法直接修改指定下标位置的单个字符
- 原代码调用的
replace方法是全局替换,只要是下划线都会被替换成目标字符,无法实现指定位置修改的需求 - 嵌套循环逻辑冗余,直接用
in关键字就能判断字符是否在已猜字母列表中,不需要二层遍历
正确实现方案
优先把待处理内容存为可变的列表类型,处理完成后再拼接为字符串输出,代码如下:
def show_hidden_word(secret_word, old_letters_guessed): # 初始化等长列表,每个位置默认显示下划线 show_list = ['_' for _ in range(len(secret_word))] for idx in range(len(secret_word)): if secret_word[idx] in old_letters_guessed: # 列表支持直接修改指定下标元素 show_list[idx] = secret_word[idx] # 用空格拼接列表得到带空格的输出格式 printage = ' '.join(show_list) print(printage) # 测试用例 show_hidden_word('house', ['s', 'p', 'j', 'i', 'm', 'k'])
运行上述代码,测试用例的输出结果为:_ _ _ _ s,符合预期。
内容的提问来源于stack exchange,提问作者Shekel18
相关产品推荐
相关产品推荐

