上記のコードは機能しますが、選択する単語のリストに 5 つの項目しかないため、5 より大きい数値を入力するとエラーが発生する可能性があるため、リストに他の単語をいくつか入れましたが、入力のある行も削除しましたユーザーが発見する単語に関連するアイテムの番号を数字で入力するよう求められる関数。だから:ランダムモジュールをインポートしました。
入力コードを削除しました。
random.sample 関数を使用して、発見する単語を保存しました (12 行目)。
発見する単語のラベルとして、words[i] を samplecode[0] に置き換えました。
文字数をより明確にするために、word.append('_ ') のアンダースコアの後にスペースを追加しました ( _ _ _ _ ではなく _____ )。
import random
print("Welcome to Hangman! Guess the word in less than 6 try.")
words= ['utopian','fairy','tree','monday','blue',
'winner','chosen','magician','european',
'basilar','fonsaken','butter','butterfly',
'flipper','seaside','meaning','gorgeous',
'thunder','keyboard','pilgrim','housewife'
]
sampleword = random.sample(words,1)
if(sampleword[0]):
print("The length of the word is: " , len(sampleword[0]))
guesses=0
letters_guessed = []
word = []
for x in range(len(sampleword[0])):
word.append('_ ')
while guesses < 6:
guess=input("Please enter the letter you guess: ")
if(guess in sampleword[0]):
print("The letter is in the word.")
for index, letter in enumerate(sampleword[0]):
if letter == guess:
word[index] = guess
letters_guessed.append(guess)
else:
print("The letter is not in the word.")
guesses=guesses+1
letters_guessed.append(guess)
print("you have guessed these letters: %s"%(''.join(letters_guessed)))
print("Letters matched so far %s"%''.join(word))
print()
if ''.join(word) == sampleword[0]:
break
if guesses==6:
print("Failure. The word was:" , sampleword[0])
else:
print("YOU'VE WON!! Great Job!")
print("You only made %i wrong guesses"%guesses)