simple text based hangman in python
<p>I'm working on a simple text based hangman game in python.  I have a rough program running but I've encountered two minor problems:</p>

<ol>
<li><p>Why does the welcome message print twice?</p></li>
<li><p>When the user inputs a letter not in the word two times in a row, the second time, the <code>"nope, try again"</code>-message does not display and current word does not display.  The first time an incorrect letter is input, it works.  Why doesn't it work the second time?</p></li>
</ol>

<hr>

<pre><code>from random import randrange

class HangmanApp:

    def __init__(self, interface):

        self.infile = open("hangman.txt", "r")
        self.interface = textInterface()

        for line in self.infile:
            self.wordlist = line.split()
        self.secretword = self.wordlist[randrange(len(self.wordlist))]

        self.letter_list = list(self.secretword)



    #tests the user's guess

    def guess(self):

        self.new_list = ["_"]*len(self.secretword)

        #keep loop going as long as there are letters in the list
        while self.letter_list != ["_"]*len(self.letter_list):                

            self.guess = self.interface.guess()

            if self.guess in self.letter_list:

                while self.guess in self.letter_list:

                    i = self.letter_list.index(self.guess)

                    #replace that letter from the list with "_" 
                    self.letter_list[self.letter_list.index(self.guess)] = "_"

                    #add the chosen letter to a new list for display
                    self.new_list[i] = self.guess                                   

                    #print list with letter added
                    self.interface.correct(self.new_list)                           

            else:

                self.interface.incorrect(self.new_list)

                self.guess = self.interface.guess()

class textInterface:

    def __init__(self):
        print("Welcome to Hangman!")

    def guess(self):
        guess = input("Guess a letter! ")
        return guess

    def display (self, word):
        string = ' '.join(word)
        print(string)

    def incorrect(self, word):
        print("Nope, try again")
        self.display(word)

    def correct(self, word):
        print("Correct")
        self.display(word)


    def main():
        inter = textInterface()
        app = HangmanApp(inter)
        app.guess()
</code></pre>
