我知道有关此问题,我已阅读,但我听不懂。我试图在另一个函数中使用一个函数的返回结果:
def multiplication(a):
c = a*a
return c
def subtraction(c):
d = c - 2
return d
print(subtraction(c))
输出:
NameError:名称'c'未定义
我知道可以使用全局变量,但是我已经知道这不是一个好主意,因为变量可以更改其值。
编辑:
这两个函数只是白痴的例子。我有两个带有单词的函数,我需要在第二个函数中使用第一个函数的返回值。在我这个愚蠢的例子中,我需要第二个函数中第一个函数(c)的结果。
答案 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