title: Python: IndexError: list index out of range
body: <p>I think I have my program completed, but... it doesn't work. I'm trying to write a program that simulates a lottery game, but when I try to check the user's guesses against the number of guesses on the ticket, I get an error that tells me the "list index is out of range". I think it has something to do with the part of the code where I assign the random digits to "a," "b", "c", etc. But I'm not sure. </p>
  
  <p>Here is the code in it's entirety:</p>
  
  <pre><code>import random
  
  def main():
  random.seed()
  
  #Prompts the user to enter the number of tickets they wish to play.
  tickets = int(input("How many lottery tickets do you want?\n"))
  
  #Creates the dictionaries "winning_numbers" and "guess." Also creates the variable "winnings" for total amount of money won.
  winning_numbers = []
  guess = []
  winnings = 0
  
  #Generates the winning lotto numbers.
  for i in range(tickets):
      del winning_numbers[:]
  
      a = random.randint(1,30)
      while not (a in winning_numbers):
          winning_numbers.append(a)
  
      b = random.randint(1,30)
      while not (b in winning_numbers):
          winning_numbers.append(b)
  
      c = random.randint(1,30)
      while not (c in winning_numbers):
          winning_numbers.append(c)
  
      d = random.randint(1,30)
      while not (d in winning_numbers):
          winning_numbers.append(d)
  
      e = random.randint(1,30)
      while not (e in winning_numbers):
          winning_numbers.append(e)
  
      print(winning_numbers)
      getguess(guess, tickets)
      nummatches = checkmatch(winning_numbers, guess)
  
      print("Ticket #"+str(i+1)+": The winning combination was",winning_numbers,".You matched",nummatches,"number(s).\n")
  
      if nummatches == 0 or nummatches == 1:
          winnings = winnings + 0
      elif nummatches == 2:
          winnings = winnings + 10
      elif nummatches == 3:
          winnings = winnings + 500
      elif nummatches == 4:
          winnings = winnings + 20000
      elif nummatches == 5:
          winnings = winnings + 1000000
  
  print("You won a total of",winnings,"with",tickets,"tickets.\n")
  
  #Gets the guess from the user.
  def getguess(guess, tickets):
  del guess[:]
  
  for i in range(tickets):
      bubble = input("What numbers do you want to choose for ticket #"+str(i+1)+"?\n").split(" ")
      guess.append(bubble)
  print(bubble)
  
  #Checks the user's guesses with the winning numbers.
  def checkmatch(winning_numbers, guess):
  match = 0
  for i in range(5):
  
      if guess[i] == winning_numbers[i]:
          match = match+1
  
  return match
  
  main()
  </code></pre>
  
  <p>And here is the error I get:</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:\Users\Ryan\Downloads\Program # 2\Program # 2\lottery.py", line 85, in &lt;module&gt;
      main()
    File "C:\Users\Ryan\Downloads\Program # 2\Program # 2\lottery.py", line 45, in main
     nummatches = checkmatch(winning_numbers, guess)
  File "C:\Users\Ryan\Downloads\Program # 2\Program # 2\lottery.py", line 79, in checkmatch
      if guess[i] == winning_numbers[i]:
  IndexError: list index out of range
  </code></pre>