1
def validateGuess():
    print(letters)
    inputGuess= input("Choose one of the letters above:")
    if len(inputGuess)> 1:
        inputGuess=input("Choose ONE of the letters above:")
return inputGuess

def wordLength():
    length=input("Welcome to Hangman. How many letters in the secret word?")
    length1=int(length)
    if length1 <0:
        length=input("Welcome to Hangman. How many letters in the secret word?")
    return length    

def guessAmount():
    guesses=input("How many guesses would you like?")
    guesses1=int(guesses)
    if guesses1 < 0:
         guesses=input("How many guesses would you like?")
    return guesses

welcome=wordLength()
remain=input("Do you want to print the count of how many words remain [Y/N]?")
guessNumber=int(guessAmount())
F=open('dictionary.txt')
F1=F.readlines()


welcome2=int(welcome)
a_list=[word.strip('\n') for word in F1]
possible_words = [x for x in a_list if len(x) == welcome2]

letters=      ['a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
while guessNumber > 0:
    letter_guess=validateGuess()
    guessNumber -= 1
    letters=letters.remove(letter_guess)

基本的に、これは私が作成している Evil Hangman ゲームの始まりですが、今まで見たことのない問題に遭遇しました。プログラムを実行するたびに、while ループの文字推測部分に到達するたびに、たとえば b などの文字を入力すると、何らかの理由で "None" が返されます。何か関係があると信じています

letters=letters.remove(letter_guess)

しかし、私は前向きではありません。毎ターン、ユーザーの文字の推測を文字のリストから削除しようとしています。前もって感謝します。

4

1 に答える 1

4

list.remove()インプレースで動作します。つまり、呼び出されたオブジェクトを変更し、値のない新しいリストを返しません。

要するに、次を使用するだけです:

letters.remove(letter_guess)
于 2013-04-10T22:38:17.220 に答える