title: python syntax mess: name is not defined
body: <p>I've been learning from 'Learn Python the Hard Way' and this particular piece of code gives me a lot of headache:</p>
  
  <pre><code>def break_words(stuff):
      """This function will break up words for us."""
      words = stuff.split(' ')
      return words
  
  def sort_words(words):
      """Sort the words."""
      return sorted(words)
  
  def print_first_word(words):
      """Prints the first word after popping it off."""
      word = words.pop(0)
      print word
  
  def print_last_word(words):
      """Prints the last word after popping it off."""
      word = words.pop(-1)
      print word
  
  def sort_sentence(sentence):
      """Takes in a full sentence and returns the sorted words."""
      words = brea_words(sentence)
      return sort_words(words)
  
  def print_first_and_last(sentence):
      """Prints the first and last words of the sentence."""
      words = break_words(sentence)
      print_first_word(words)
      print_last_word(words)
  
  def print_first_and_last_sorted(sentence):
      """Sorts the words then prints the first and last one."""
      words = sort_sentence(sentence)
      print_first_word(words)
      print_last_word(words) 
  </code></pre>
  
  <p>Once the module is imported I get errors:</p>
  
  <pre><code>&gt;&gt;&gt; import ex25
  &gt;&gt;&gt; sentence = "All good things come to those who wait."
  &gt;&gt;&gt; words = ex25.break_words(sentence)
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "ex25.py", line 4, in break_words
      return words
  NameError: global name 'words' is not defined
  </code></pre>
  
  <p>Where did I go wrong? I checked the code millions of times...</p>