0

这是我遇到的问题类型的一个简单示例:

def making_list(text):
    list_ = []
    i = 0
    while i < int(len(text)):
        list_.append(text[i])
        i += 1
    return list_

def calling_list(list_):
    print list_

text = raw_input("text input")

making_list(text)
calling_list(list_)

来自making_list的变量list_不能被函数calling_list识别。这个问题的可能解决方案是什么?

谢谢

4

4 回答 4

3

您没有将变量存储在任何地方。

mylist = making_list(text)
calling_list(mylist)

说明:变量名仅在函数范围内有效。如果你离开函数(返回一些局部变量),你只返回变量的“值”,而不是它的名称,你需要将它分配给外部变量。

于 2013-04-22T11:46:58.373 回答
0

您必须声明将输出making_list作为其值的变量。making_list函数返回list_;但是如果您不将它分配给函数之外的另一个变量,则无法访问它。

list_ = making_list(text)将解决您的问题。

于 2013-04-22T11:49:29.543 回答
0

您的making_list-function 不返回任何内容。这将起作用

list = making_list(text)
calling_list(list)

那可行。

于 2013-04-22T12:34:05.140 回答
0

我不想更改或优化您的代码,我只想提供一个可能的解决方案:

1)如果要list_存储在内存中,请更改代码的最后两行,如下所示:

list_=making_list(text)
calling_list(list_)

现在您可以在代码中的任何位置访问 list_。

2)如果您不想存储list_并且只想打印它并忘记它,请删除代码的最后两行并改写这一行:

calling_list(making_list(text))
于 2013-04-22T13:10:02.470 回答