python语法mess:name未定义

alk*_*p79 1 python syntax

我一直在学习"以艰难的方式学习Python",这段特殊的代码给我带来了很多麻烦:

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) 
Run Code Online (Sandbox Code Playgroud)

导入模块后,我收到错误:

>>> import ex25
>>> sentence = "All good things come to those who wait."
>>> words = ex25.break_words(sentence)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ex25.py", line 4, in break_words
    return words
NameError: global name 'words' is not defined
Run Code Online (Sandbox Code Playgroud)

我哪里做错了?我检查了数百万次代码......

小智 5

你试过跑吗?

reload(ex25)
Run Code Online (Sandbox Code Playgroud)

?如果导入文件,然后更改该文件,则python进程不知道您已更改它.您必须重新启动,或者让它再次查看模块.