尝试在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/

10-11 06:42
查看更多