title: 'String' module object has no attribute 'join'
body: <p>So, I want to create a user text input box in Pygame, and I was told to look at a class module called inputbox. So I downloaded inputbox.py and imported into my main game file. I then ran a function inside it and got an error:</p>
  
  <pre><code>Traceback (most recent call last):
  File "C:\Users\Dennis\Tournament\inputbox.py", line 64, in &lt;module&gt;
  if __name__ == '__main__': main()
   File "C:\Users\Dennis\Tournament\inputbox.py", line 62, in main
  print(ask(screen, "Name") + " was entered")
   File "C:\Users\Dennis\Tournament\inputbox.py", line 46, in ask
  display_box(screen, question + ": " + string.join(current_string,""))
  AttributeError: 'module' object has no attribute 'join'
  </code></pre>
  
  <p>I tried running the inputbox.py while on it's own and got the same error.
  I am using Python 3.3 and Pygame 3.3 so that could be an issue. I was told that many 'string' functions have been removed lately. If anyone knows what the problem is and can fix it, then here is the code:
  I would be truly grateful if anyone can fix the problem as I've been trying to set up user inputs in my Pygame games for a long time now. 
  Thanks a lot for the answers in advance.</p>
  
  <pre><code># by Timothy Downs, inputbox written for my map editor
  
  # This program needs a little cleaning up
  # It ignores the shift key
  # And, for reasons of my own, this program converts "-" to "_"
  
  # A program to get user input, allowing backspace etc
  # shown in a box in the middle of the screen
  # Called by:
  # import inputbox
  # answer = inputbox.ask(screen, "Your name")
  #
  # Only near the center of the screen is blitted to
  
  import pygame, pygame.font, pygame.event, pygame.draw, string
  from pygame.locals import *
  
  def get_key():
    while 1:
      event = pygame.event.poll()
      if event.type == KEYDOWN:
        return event.key
      else:
        pass
  
  def display_box(screen, message):
    "Print a message in a box in the middle of the screen"
    fontobject = pygame.font.Font(None,18)
    pygame.draw.rect(screen, (0,0,0),
                     ((screen.get_width() / 2) - 100,
                      (screen.get_height() / 2) - 10,
                      200,20), 0)
    pygame.draw.rect(screen, (255,255,255),
                     ((screen.get_width() / 2) - 102,
                      (screen.get_height() / 2) - 12,
                      204,24), 1)
    if len(message) != 0:
      screen.blit(fontobject.render(message, 1, (255,255,255)),
                  ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10))
    pygame.display.flip()
  
  def ask(screen, question):
    "ask(screen, question) -&gt; answer"
    pygame.font.init()
    current_string = []
    display_box(screen, question + ": " + string.join(current_string,""))
    while 1:
      inkey = get_key()
      if inkey == K_BACKSPACE:
        current_string = current_string[0:-1]
      elif inkey == K_RETURN:
        break
      elif inkey == K_MINUS:
        current_string.append("_")
      elif inkey &lt;= 127:
        current_string.append(chr(inkey))
      display_box(screen, question + ": " + string.join(current_string,""))
    return string.join(current_string,"")
  
  def main():
    screen = pygame.display.set_mode((320,240))
    print(ask(screen, "Name") + " was entered")
  
  if __name__ == '__main__': main()
  </code></pre>