在另一个函数中使用一个函数的返回结果

时间:2018-07-19 12:40:49

标签: python python-3.x

我知道有关此问题,我已阅读,但我听不懂。我试图在另一个函数中使用一个函数的返回结果:

def multiplication(a):
    c = a*a
    return c

def subtraction(c):
    d = c - 2
    return d

print(subtraction(c))

输出:

  

NameError:名称'c'未定义

我知道可以使用全局变量,但是我已经知道这不是一个好主意,因为变量可以更改其值。

编辑:

这两个函数只是白痴的例子。我有两个带有单词的函数,我需要在第二个函数中使用第一个函数的返回值。在我这个愚蠢的例子中,我需要第二个函数中第一个函数(c)的结果。

5 个答案:

答案 0 :(得分:2)

您没有正确调用函数。

def multiplication(a):
    c = a*a
    return c

def subtraction(c):
    d = c - 2
    return d

# first store some value in a variable
a = 2

# then pass this variable to your multiplication function
# and store the return value
c = multiplication(a)

# then pass the returned value to your second function and print it
print(subtraction(c))

答案 1 :(得分:1)

那为什么不使用返回值呢?

print(subtraction(multiplication(24)))

答案 2 :(得分:1)

'c'不在'subtract'函数之外声明。 您需要给需要在打印前声明'c'。 假设您希望'c'为5,然后:

c = 5
print(subtraction(c))

答案 3 :(得分:1)

您已经定义了两个都返回数字的函数。

如果您致电subtraction(c),则会看到错误消息,因为没有c

如果您在打印状态表中定义了c

c = 42
print(subtraction(c))

没关系。

尝试这样思考:每个函数都将一个变量用作变量并返回数字。

例如

>>> multiplication(101)
10201

该函数恰好被称为c isnide 该函数在函数范围外(即范围)是未知的。

您可以将数字保存为变量

>>> x = multiplication(101)

然后x会记住该值。 或者

>>> c = multiplication(101)

这与您在函数中内置 c不同。


(问题编辑后):

确定要使用哪个值调用第一个函数,例如101:

>>> c = multiplication(101)

然后使用该返回调用下一个函数:

>>>> subtraction(c)

或者只是将它们链接在一起:

subtraction( multiplication(101) )

要启动链,您将需要使用字符串,整数或定义的变量。 否则,您会得到名称未定义的错误。 在函数中使用变量后,函数结束时它将超出范围。

答案 4 :(得分:1)

这会让事情变得更清楚吗?

def multiplication(a):
    c = a*a
    return c

def subtraction(c):
    d = c - 2
    return d

print(multiplication(5))               # 25
print(subtraction(5))                  #  3
print(multiplication(subtraction(5)))  #  9
print(subtraction(multiplication(5)))  # 23

我认为您正在尝试执行最后一个打印语句中的操作:首先调用乘法函数,然后对结果调用减法函数。


请注意,乘法函数中的变量c与减法函数中的c完全不同。如此之多,以至于可以更清楚地重命名变量,也许是这样的:

def multiplication(a):
    product = a * a
    return product

def subtraction(a):
    difference = a - 2
    return difference