我正在尝试一个简单版本的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命令。
答案 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', '!']