在hangman中替换字符串的一部分时遇到问题

时间:2019-01-18 05:20:50

标签: python string

我正在尝试一个简单版本的hangman。稍后,我将添加所有功能,例如猜测框。现在,我无法弄清问题的核心。

我尝试查看其他人的代码,但我希望在不使用枚举的情况下实现它。可能吗? PS:我也调试了它,并验证了在第一个循环中,secret_word_letter等于用户的猜测,但不会更新字符串。

user_word = input("Enter a word you'd like to play with: ")
secret_word = user_word.lower()
hangman_word = len(user_word) * '_'
guesses = 0
game_Over = False
limit = int(len(user_word))

while not game_Over:
    if guesses == limit:
        print("You Lose! Game Over!")
        game_Over = True
    user_guess = input("Enter a letter you'd like to guess: ")
    for letter in secret_word:
        secret_word_letter = letter
        if secret_word_letter == user_guess:
            hangman_word.replace("_", user_guess)
            print(hangman_word)
            break
        else:
            print("You guessed wrong, try again!")
            guesses += 1
            break

第16行未用用户猜测替换空白的子手单词字符串“ _”。 也许我错误地实现了string.replace命令。

1 个答案:

答案 0 :(得分:0)

您必须将新值存储在变量中。

word = "glue"
word.replace("u", "_")
print(word) # glue

您只需更改为variable = ...

即可对其进行修复
word = "glue"
word = word.replace("u", "_")
print(word) # gl_e

所以:

hangman_word = hangman_word.replace("_", user_guess)

展望未来,请注意哪些函数和方法将返回新值,以及哪些将“原地”修改值。使用Python时要牢记这一点是很有用的!

例如,append进入列表是“就地”。

word = list(word) # ['g', 'l', '_', 'e']
word.append("!")
print(word) # ['g', 'l', '_', 'e', '!']