Hangman错误读取文件

时间:2016-12-10 15:01:51

标签: python multithreading

我的文本文件每行有一个单词,如“CLASS”,然后到另一行“PYTHON”,依此类推。假设我的随机单词是“CLASS”,而不是“*****”我得到“******”再多一个“*”。我真的不知道为什么......

import random
import sys

choice = None
List = open("words_for_hangman.txt").readlines()



while choice != "0":
   print('''
--------------------
Welcome to Hangman
--------------------

Please select a menu option:

0 - Exit
1 - Enter a new list of words
2 - Play Game

''')
choice= input("Enter you choice: ")

if choice == "0":
    sys.exit("Exiting from Python")
elif choice =="1":
    list = []
    x = 0
    while x != 5:
        word = str(input("Enter a new word to put in the list: "))
        list.append(word)
        word = word.upper()
        x += 1
elif choice == "2":
    print('''

Now select your difficulty level:

0 - EASY
1 - INTERMEDIATE
2 - HARD

''')
    level= input("Enter your choice: ")
    if level == "0":
        word = random.choice(List)
        word = word.upper()
        hidden_word = "*" * len(word)
        lives = 10
        guessed = []
    elif level == "1":
        word = random.choice(List)
        #word = word.upper()
        hidden_word = "*" * len(word)
        lives = 7
        guessed = []
    elif level == "2":
        word = random.choice(List)
        #word = word.upper()
        hidden_word = "*" * len(word)
        lives = 5
        guessed = []

    while lives != 0 and hidden_word != word:
        print("\n-------------------------------")
        print("The word is")
        print(hidden_word.replace("_"," _ "))
        print("\nThere are", len(word), "letters in this word")
        print("So far the letters you have guessed are: ")
        print(' '.join(guessed))
        print("\n You have", lives,"lives remaining")
        guess = input("\n Guess a letter: \n")
        guess = guess.upper()
        if len(guess) > 1:
            guess = input("\n You can only guess one letter at a time!\n Try again: ")
            guess = guess.upper()
        elif guess== " ":
            guess = input("\n You need to input a letter, not a space!\n Come on let's try again: ")
            guess = guess.upper()
        while guess in guessed:
            print("\n You have already guessed that letter!")
            guess = input("\n Please take another guess: ")
            guess = guess.upper()
        guessed.append(guess)
        if guess in word:
            print('''-------------------------------
            ''')
            print("Well done!", guess.upper(),"is in the word")
            word_so_far = ""
            for i in range (len(word)):
                if guess == str(word[i]):
                    word_so_far += guess
                else:
                    word_so_far += hidden_word[i]
            hidden_word = word_so_far
        else:
            print('''-------------------------------
            ''')
            print("Sorry, but", guess, "is not in the word")
            lives -= 1

    if lives == 0:
            print("GAME OVER! You have no lives left")
    else:
        print("\n CONGRATULATIONS! You have guessed the word")
        print("The word was", word)
        print("\nThank you for playing Hangman")
else:
    choice = print("\n That is not a valid option! Please try again!")
    choice = input("Choice: ")

1 个答案:

答案 0 :(得分:1)

您可能有一个换行符字符跟踪从文本文件中读取的每个单词,例如

'CLASS\n'

要删除此额外字符,您可以使用strip

word = word.strip()