尝试在Python中创建一个名为hangman
的游戏。
我已经走了很长一段路,但是“核心”功能使我失望了。
我已经删除了与该问题无关的所有部分。
它来了:
picked = ['yaaayyy']
length = len(picked)
dashed = "-" * length
guessed = picked.replace(picked, dashed)
while tries != -1:
input = raw_input("Try a letter: ")
if input in picked:
print "Correct letter!"
found = [i for i, x in enumerate(picked) if x == input]
for item in found:
guessed = guessed[:item] + input + guessed[i+1:]
print guessed
调用此脚本后,python创建一个名为
guessed
的变量,其中包含7个破折号-------
它要求用户输入字母,如果字母正确,它将用正确的字母替换
-
。但不要保留以前的字母。要猜测的词是
yaaayyy
代码输出:
Word is 7 characters:
-------
Try a letter: a
Correct letter!
-aaa
Try a letter: y
Correct letter!
yyyy
目标:
Word is 7 characters:
-------
Try a letter: a
Correct letter!
-aaa---
Try a letter: y
Correct letter!
yaaayyy
最佳答案
这段代码似乎有点错误:
found = [i for i, x in enumerate(picked) if x == input]
for item in found:
guessed = guessed[:item] + input + guessed[i+1:]
最后一行可能是:
guessed = guessed[:item] + input + guessed[item+1:]
编辑
这对我来说似乎更简单:
for i, x in enumerate(picked):
if x == input:
guessed = guessed[:i] + input + guessed[i+1:]
编辑2
我不确定这是否更清楚,但可能会更有效:
guessed = ''.join(x if picked[i] == input else c for i, c in enumerate(guessed))
关于python - 子手in Python-根据索引python替换单个字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45309118/