Issues with lists? Error checking not working
<p>I am relatively new to python, and I just started learning how to use classes. This is the first program I've made where I've tried to integrate them, but I'm coming up with a small issue I can't seem to fix, and I think it has to do with lists. The code is as follows:
(The topic is getting the user to choose what type of seat to purchase).</p>

<pre><code>class SeatBooking:
    def __init__(self, seat):
        self.seat = seat
        possible_types = []
        possible_types.extend(["Low_Economy", "Standard_Economy", "High_Economy",
                        "Business", "First", "Residence"])
        possible_types = " ".join(possible_types)
        while True:
            if self.seat not in possible_types:
                print("Sorry, but this is not a valid answer. Please try again!")
                self.seat = str(input("What type of ticket would you like? The possible types are: {} "
                            .format(possible_types)))
            else:
                print("You have chosen to book a {} ticket.".format(self.seat))
                confirmation = str(input("Please confirm with 'Yes' or 'No': ")).lower()
                if confirmation == "yes":
                    print("Excellent decision! Ready to continue")
                    print("=" * 170)
                    break
                elif confirmation == "no":
                    self.seat = str(input("What type of ticket would you like? The possible types are: {} "
                                .format(possible_types)))
                else:
                    print("That doesn't seem to be a valid answer.")
</code></pre>

<p>Here is the main file (to execute the different classes I'll make):</p>

<pre><code>import type_seat
# Choose the seat to book
print("=" * 170)
print("Welcome to Etihad! This program can help you organize your       flight, payments and usage of miles!")
possible_types = []
possible_types.extend(["Low_Economy", "Standard_Economy", "High_Economy",
                   "Business", "First", "Residence"])
possible_types = " ".join(possible_types)
seat_type = str(input("What type of ticket would you like? The possible     types are: {}. "
                      .format(possible_types)))

type_seat.SeatBooking(seat_type)
</code></pre>

<p>The problem I have is that I seem to be able to enter certain letters and it doesn't count them as an error even though they're not one of the available seats. For example, when I enter the letters "h" or "s", my error checking part of the code doesn't respond to it, but when I enter the letter "b" or random words like "try" it does. It doesn't seem to be completely random though, and it seems to only happen with letters or parts of the first 3 'items' in the possible_types[] list. However, I haven't tested this fully. This is why I thought it had something to do with lists, so if anyone knows what's causing this, I'd really appreciate it if they could help me resolve this and perhaps help me from repeating this mistake in the future!</p>

<p>Note, for the lists I am using .join, but I also tried str(). </p>