Вопрос питона. Введите ответ и получите ответ, который случайным образом задается в списке ответов
Кстати, я использую python 3, но для этого нет тега. То, что я хочу сделать, - это когда пользователь вводит букву, И если буква правильная, то будет автоматический ответ, что она была правильной, однако это не один и тот же ответ каждый раз, когда она правильная. Я хочу, чтобы он поместил список ответов и использовал random.choice, чтобы случайным образом выбрать ответ, который будет показан на правильный ввод.
Мой код до сих пор:
import random alphabeth = 'abcdefghijklmnopqrstuvwxyz' rand = '' blank = [] rand_list = [] guessed_list = [] def prepWord(): global rand, guessed_list, blank, rand_list words = ['note', 'pencil', 'paper','foo'] rand = random.choice(words) guessed_list = [] blank = ['_']*len(rand) rand_list = [] for letter in rand: rand_list.append(letter) startPlay() def startPlay(): gameQ = input('Play Hangman? y or n --> ') if gameQ == 'y': print('Guess the letters:') print(blank) checkAnswer() elif gameQ == 'n': print('goodbye') def playAgain(): again = input('Would you like to play again? y or n --> ') if again == 'y': prepWord() else: Print ('Thanks for playing!') def checkAnswer(): x = True while x: answer = input('').lower() if answer not in guessed_list: guessed_list.append(answer) if len(answer)>1: print('One letter at a time.') elif answer not in alphabeth: print('Invalid character, please try again.') else: if answer in rand: print ("The letter {} is in the word. Good guess!".format(answer)) indices = [ndex for ndex, letter in enumerate(rand_list) if letter == answer] for ndex in indices: blank[ndex] = answer print (blank) else: print ("I'm sorry the letter {} is not in the word. Please try again.".format(answer)) else: print('Letter {} already used. Try another.'.format(answer)) if '_' not in blank: print('You win!') final_word = '' for letter in blank: final_word += letter print(final_word) print('') x = False playAgain() prepWord()
Что я уже пробовал:
Я составил список ответов и поместил случайную функцию для этого списка
reaction=['good job','lucky guess!',you\'re on a roll] react=random.choice(reaction)
Я попробовал поместить его после
rand_list.append(letter)если правильные буквы были угаданы, но каким-то образом он дает только один ответ, потому что он связан со всем словом, он просто выберет другой ответ для другого набора слов. То, что я хотел, - это каждый ввод Буквы в определенное слово, как только он будет правильным, он даст ответ, который не будет таким же, как раньше. Кто-нибудь может мне помочь?