gpt4 book ai didi

python - Python 中的 Hangman - 根据索引 python 替换单个字符串中的多个字符

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:49 25 4
gpt4 key购买 nike

尝试用 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 - Python 中的 Hangman - 根据索引 python 替换单个字符串中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45309118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com