title: Simple username and password application in Python
body: <p>I'm trying to build a simple login and password application using a dictionary. It works fine except the part where it checks if the login matches the password (in the bottom where it says "Login successful!").</p>
  
  <p>If I were to create login 'a' and password 'b', and then create login 'b' and password 'a', it would log me in if I tried to log in with login 'a' and password 'a'. It just checks if those characters exist somewhere in the dictionary, but not if they are a pair.</p>
  
  <p>Any suggestions how to fix this?</p>
  
  <pre><code>users = {}
  status = ""
  
  while status != "q":
      status = raw_input("Are you a registered user? y/n? Press q to quit: ")  
  
      if status == "n": #create new login
           createLogin = raw_input("Create login name: ")
  
           if createLogin in users: # check if login name exist in the dictionary
               print "Login name already exist!\n"
           else:
               createPassw = raw_input("Create password: ")
               users[createLogin] = createPassw # add login and password
               print("\nUser created!\n")     
  
      elif status == "y": #login the user
          login = raw_input("Enter login name: ")
  
          if login in users:
             passw = raw_input("Enter password: ")
             print
  
             if login in users and passw in users: # login matches password
                 print "Login successful!\n"
  
          else:
              print
              print("User doesn't exist!\n")
  </code></pre>
  
  <p><strong>Edit</strong></p>
  
  <p>Now that this is working, I'm trying to divide the application to three functions, for readability purposes. It works, except that I get infinite loop.</p>
  
  <p>Any suggestions why?</p>
  
  <pre><code>users = {}
  status = ""
  
  def displayMenu():
      status = raw_input("Are you a registered user? y/n? Press q to quit: ")  
      if status == "y":
          oldUser()
      elif status == "n":
          newUser()
  
  def newUser():
      createLogin = raw_input("Create login name: ")
  
      if createLogin in users: # check if login name exists
          print "\nLogin name already exist!\n"
      else:
          createPassw = raw_input("Create password: ")
          users[createLogin] = createPassw # add login and password
          print("\nUser created!\n")     
  
  def oldUser():
      login = raw_input("Enter login name: ")
      passw = raw_input("Enter password: ")
  
      # check if user exists and login matches password
      if login in users and users[login] == passw: 
          print "\nLogin successful!\n"
      else:
          print "\nUser doesn't exist or wrong password!\n"
  
  while status != "q":            
      displayMenu()
  </code></pre>