我是python的新手,并试图建立一个Hangman游戏进行练习。
我正在使用Python 3.6.1
用户可以输入一封信,我想告诉他该单词中是否出现该字母及其所在位置。
我使用occurrences = currentWord.count(guess)
获取总出现次数
我有firstLetterIndex = (currentWord.find(guess))
来获取索引。
现在我有第一个字母的索引,但如果这个字有多次这个字怎么办?
我试过secondLetterIndex = (currentWord.find(guess[firstLetterIndex, currentWordlength]))
,但这不起作用
有一个更好的方法吗?也许我找不到功能的构建?
答案 0 :(得分:4)
执行此操作的一种方法是使用列表解析来查找索引:
currentWord = "hello"
guess = "l"
occurrences = currentWord.count(guess)
indices = [i for i, a in enumerate(currentWord) if a == guess]
print indices
输出:
[2, 3]
答案 1 :(得分:0)
我会保留第二个布尔值列表,指出哪些字母已正确匹配。
>>> word_to_guess = "thicket"
>>> matched = [False for c in word_to_guess]
>>> for guess in "te":
... matched = [m or (guess == c) for m, c in zip(matched, word_to_guess)]
... print(list(zip(matched, word_to_guess)))
...
[(True, 't'), (False, 'h'), (False, 'i'), (False, 'c'), (False, 'k'), (False, 'e'), (True, 't')]
[(True, 't'), (False, 'h'), (False, 'i'), (False, 'c'), (False, 'k'), (True, 'e'), (True, 't')]