Python Hangman游戏字符串部分遮罩异常问题求助
Hangman游戏Hint函数问题解决
问题根源
你用str.replace()生成提示字符串的逻辑有漏洞:这个方法会替换整个字符串中所有匹配目标子串的内容。
比如处理'java'时,word[3:]是'a',而原字符串里索引1的位置也是'a',所以replace会把这个中间的'a'也替换成'-',最终得到错误的'J-v-'。
之前处理'python'、'kotlin'时正常,只是因为这些单词的word[3:]子串在前面没有重复出现,属于巧合,不是可靠的实现方式。
正确实现方式
直接通过切片拼接的方式生成提示字符串,完全基于位置处理,不会出现匹配错误:
def hint(word: str) -> str: # 取前3个字符,后面补充对应数量的连字符(用max避免单词长度不足3时出现负数) return word[:3] + '-' * max(len(word) - 3, 0)
测试验证
- 输入'java' → 返回
'jav-',符合预期 - 输入'python' → 返回
'pyt---',正常工作 - 输入'javascript' → 返回
'jav-------',正确生成提示
内容的提问来源于stack exchange,提问作者Imran
相关产品推荐
相关产品推荐

