【发布时间】:2019-04-22 15:22:23
【问题描述】:
我正在用 Python 构建一个益智文字游戏。我有正确的谜语,和猜到的谜语。我想构建第三个字符串,它在正确的谜题单词中显示猜测谜题中的正确字母,并在不正确字母的位置显示 _。
例如,说正确的单词是APPLE,猜出的单词是APTLE
然后我想要第三个字符串:AP_L_
猜出的单词和正确的单词保证3到5个字符长,但猜出的单词不保证和正确的单词长度一样
例如,正确的单词是TEA,猜出的单词是TEAKO,那么第三个字符串应该是TEA__,因为玩家猜错了最后两个字母。
另一个例子,正确的单词是APPLE,猜到的单词是POP,第三个字符串应该是:
_ _ P_ _(无空格分隔)
我可以成功得到正确和猜到的单词的匹配索引;但是,我在构建第三个字符串时遇到了问题。我刚刚了解到 Python 中的字符串是不可变的,我不能分配像 str1[index] = str2[index] 之类的东西
我尝试了很多方法,包括使用列表,但我没有得到正确的答案。附上的代码是我最近的尝试,你能帮我解决这个问题吗?
谢谢
找到puzzle_word 和guess 之间的匹配项
def matcher(str_a, str_b):
#find indexes where letters overlap
matched_indexes = [i for i, (a, b) in enumerate(zip(str_a, str_b)) if a == b]
result = []
for i in str_a:
result.append('_')
for value in matched_indexes:
result[value].replace('_', str_a[value])
print(result)
matcher("apple", "allke")
现在的输出结果是五个“_”的列表
案例:
- 正确的单词是
APPLE,猜出的单词是APTLE第三 字符串:AP_L_ - 正确的单词是
TEA,猜到的单词是TEAKO, 第三个字符串应该是TEA__ - 正确的单词是
APPLE并且猜到了 单词是POP,第三个字符串应该是_ _ P_ _
【问题讨论】:
-
如果您将整个程序的代码包含在内并缩短您的问题以使其更精确,那么问题可能会更容易理解。
标签: python-3.x string immutability string-comparison