2016-05-11 24 views
-1

我开始学习Python,我发现它很有趣。我正在尝试创建自己的模块,并遇到了一个碰撞。该代码是这样的:在Python中创建模块时出现错误消息

def break_words(sentence): 
    words = sentence.split(' ') 
    return words 

def sort_words (words):                    
    sort_word=sorted(words) 
    return sort_word 

第二个功能具有由第一送入参数words,我认为它应该工作,因为它已经返回,但在Python运行filename.sort_words(words),它给出了一个错误信息NameError:global name 'words' is not defined。在它运行第二个函数之前,它要求我定义诸如words=filename.break_words(sentence)之类的词。

我的代码有什么问题?

+0

请不要忘记在这里正确的代码缩进。它真的提高了可视性。 – valex

回答

0

你应该尝试在未来更好地解释自己,这是非常困惑的阅读,可能是没有人回答的原因。 这就是我想你想知道:

import filename 
words = filename.break_words('some sentence goes here') 
print filename.sort_words(words) 

你试过了吗?

编辑: Python中的变量总是在作用域中定义,因此在函数中定义一个变量意味着它不在函数外部的任何位置定义。 'return'只是将该变量的值返回给调用者。

+0

是的。它的工作,但我试图找到一种方式,我没有在python中再次赋值给单词,因为它已经在break_words函数下分配了,并且我已经返回了它的值以供sort_words(words)自动使用。或者也许我误解了使用返回命令 – Bolaji

+0

掠夺我的编辑。 –

+0

我了解它现在的功能 – Bolaji