首页 > 解决方案 > 有没有办法可以更新循环内的值?

问题描述

def get_guessed_word(secret_word, letters_guessed):
    guessed_word = ''
    for letter in secret_word:
        if letter not in letters_guessed:
            guessed_word += '_ '
        else:
            guessed_word += letter
    return guessed_word
def hangman(secret_word):
    print('Welcome to the game Hangman!')
    print('\nI am thinking of a word that is {} letters long\n'.format(str(len(secret_word))))
    for i in range(len(secret_word)):
        print('_ ',end=' ')
    guess = 6
    word = ''
    guessed_word = ''
    user_input = []
    while guess > 0:
        user_input = input('\n\nPlease guess a letter: ')
        guessed_word = get_guessed_word(secret_word,user_input)
        print(guessed_word)
        guess -= 1
        print('\nyou have {} guesses left.'.format(guess))
    return ''
print(hangman('apple'))

我想返回所有更新的值,但我得到每个循环的值示例:如果秘密词是“苹果”,则输出应该是

请猜一个字母:a a _ _ _ _ 请猜一个字母:p app _ _

但我的输出是:

请猜一个字母:a a _ _ _ _ 请猜一个字母:P _ pp _ _

标签: python

解决方案


改变:

user_input = input('\n\nPlease guess a letter: ')

至:

user_input += input('\n\nPlease guess a letter: ')

这样您就可以附加它而不是替换它。


推荐阅读