Python:不能返回在该函数之外的函数内部分配的值以供以后使用

时间:2017-07-20 03:31:11

标签: python

def program(n):
    name = input("What is your name? >")
    return name
print(name)

我有一个代码,我试图执行非常类似于此。执行时,它不会返回函数中使用的变量“name”,以便在函数外部使用该变量。为什么是这样?   顺便说一下,我是编码的新手,所以如果我犯了一个愚蠢的错误,请原谅。

2 个答案:

答案 0 :(得分:3)

运行程序时,需要将结果(即程序中return的任何内容分配给另一个变量)。例如:

def get_name():
    name = input('Name please! ')
    return name

name = get_name()
print('Hello ' + name)

Pssst ..我把你的函数参数n带走了,因为用于任何事情。如果你在实际程序中使用它,你应该保留它:)

进行一些更深入的解释...

在你的整洁的小函数内声明的变量一旦你出来就无法看到(虽然有一些例外,我们现在不需要进入)。如果您对它的工作原理感兴趣,那就称为“变量范围”。

答案 1 :(得分:2)

要执行函数的内容,您需要调用函数并将返回值赋给某个​​变量。要修复您的示例,您可以执行以下操作:

def get_name():
    name = input("What is your name? >")
    return name

name = get_name()
print(name)

我已将函数名称从program()更改为get_name(),因为program()是函数的模糊名称。

此代码段将调用get_name()函数并将返回值分配给变量name。值得注意的是,函数内的name变量实际上是与我们在函数外部分配的变量不同的变量。 注意:我已从n删除了get_name()参数,因为它没有被使用。