title: UnboundLocalError: local variable referenced before assignment Python
body: <p>I've been having trouble with the "def" function. I know this question has already been asked, but the answer didn't satisfy me and I didn't see how to apply it to my code. I'm trying to make the the popular game 2048 in Python. Basically, when I define the function that makes the entire board move left, it bites me with the error: UnboundLocalError: local variable referenced before assignment. It seems that I have to define the variables "bone" and "btwo" in somewhere that isn't, like, global. But I am yet to figure out how to get that working. Setting parameters in my moveleft() function isn't working, e.g moveleft(bone,btwo). So I'm at my wit's end.</p>
  
  <p>Now, I'll include the entire code, all commented up, but the part I think has the problem is where I define the function moveleft(). Also, if there are any outstanding stupid bits of code, please tell me. Also, try and keep it simple, I'm pretty rubbish with programming and its associated phrases and terms. This is only my 3rd attempt at a code. </p>
  
  <p>I realise I'm asking a lot, but I would really, really, appreciate help with this.</p>
  
  <p>Code:
  <a href="http://pastebin.ca/2824228" rel="nofollow">http://pastebin.ca/2824228</a></p>
  
  <p><em>Minimized version:</em></p>
  
  <pre><code>bone, btwo = 1, 2
  
  def move_left():
      if bone == 1: print("bone is 1")
      if btwo == 2: print("btwo is 2")
  
      btwo = 3 
      bone = 2 
  
  move_left()
  </code></pre>