向函数传递参数-从Python开始
从Python开始的第3.5节“将参数传递给函数”中有一个示例,我没有遵循:向函数传递参数-从Python开始,python,Python,从Python开始的第3.5节“将参数传递给函数”中有一个示例,我没有遵循: # This program demonstrates an argument being # passed to a function def main(): value = 5 show_double(value) # The show_double function accepts an argument # and displays double its value def show_do
# This program demonstrates an argument being
# passed to a function
def main():
value = 5
show_double(value)
# The show_double function accepts an argument
# and displays double its value
def show_double(number):
result = number * 2
print result
#call main function
main()
我不知道函数
show\u double
后面的(number)
与主函数有什么关系,或者与任何东西有什么关系。我也不明白为什么它在主函数中被列为show\u double(value)
。我不明白为什么show\u double()
的两个实例都不使用传递给它的相同参数 因此,当您使用()
调用函数时,您的意思是我希望此函数运行。在底部,您正在调用main
函数,该函数依次调用show\u double
函数,参数为5
main函数调用show\u double()
传递参数值
然后在函数内部将值加倍并返回简而言之,发生了什么: main只取value=5,并将其放入show double函数中 在某种程度上,您可以像这样重写整个代码(因为它相对简单),但这可能有助于理解
def main():
value = 5 #the main() part
result = value * 2 #the show_double(number) part (notice how i changed the number varialbe to value, so you can follow what is happening to 'value'
print result
show\u double(value)
是一个函数调用,参数是value
。基本上,您可以通过这种方式从主函数调用show_double
def show\u double(数字):
这基本上是该特定功能的函数定义开始的地方。您可以从其他地方调用它,比如从main函数调用
number
参数使您可以使用任何具体值调用此函数,因此它不是硬编码的,也不使用全局变量。在这种特殊情况下,您将把值5
传递给它以进行打印,但通过另一个函数调用,这可能类似于6、7、10左右。基本上,这种方式可以使您的打印灵活
在代码中,从末尾调用main函数,因此链将:
main
->show\u double
(这将打印您的值)->返回到main
基本上show\u double(value)
将主函数中定义的值传递到show\u double(number)
函数,该函数期望接收一个数字作为参数
def main():
value = 5
show_double(value) # Function Call
# The show_double function accepts an argument
# and displays double its value
def show_double(number): # Function defination
result = number * 2
print result
#call main function
main()
因此,您可以看到在代码的底部如何调用main()
?这就是主函数的运行方式,或者让编译器/解释器知道要运行哪个函数。在main函数中,它执行相同的操作,只是现在它调用的函数是show\u double(number)
。括号中是一个“参数”,一个必须在调用中发送的值。因此,为了满足这个要求,主方法调用show\u double(value)
,这与show\u double(5)
相同。现在我们进入了show\u double
功能。这里它接受参数5
,并将其设置为名为number
的变量。它将其加倍,然后将其返回到函数“按索引而不是名称获取参数”。这就是为什么数字和值是不相关的,但它只是工作
function test(first, second, third):
print first
print second
print third
param1 = 'hello'
param2 = 'world'
test(param1, param2, 'python')
结果
hello
world
python
下面我将解释Python如何处理您的程序。我制定了一般规则,并展示了它们如何应用于您的程序。还有许多其他规则(例如
返回
),所以我下面写的只是对真正的一般规则的简化
Python自上而下执行(即处理)一个程序。因此,首先执行defmain…
块(包括下面以空格开头的行),这将创建main
函数。然后执行def show_double…
块(后面有缩进行),这将创建show_double
函数。然后执行main()
行,该行调用main
函数。函数调用从上到下执行函数的主体(即以空格开头的行)。处理完整个函数体后,在调用下面的行中继续执行。现在在main
下面没有这样的行,因此程序退出
为了执行main
,Python执行value=5
行,这将创建局部变量value
。该变量仅在main
调用中可用。然后执行show\u double(value)
,这是一个函数调用,因此要执行的下一行将是show\u number
正文的第一行。但在此之前,Python创建名为number
(因为它在defshow\u number(…)
)的局部变量,并使用value
(即5
)的值对其进行初始化,因为value
是在show\u number(…)
调用中指定的。函数调用中括号内的项称为参数。它们用于指定被调用函数的输入。在调用站点(show_number(value)
)value
被指定为输入,其值(5
)作为本地变量number
调用show_double(value)时,它将“value”传递到“number”参数中。
def show_double(number)不是查找名为number的变量,它只是意味着第一个参数(在本例中为'value')将被分配给show_double函数中的变量'number'
您也可以调用show_double(5),然后它会在show_double函数中将5赋值给number变量。在main中,您使用
值调用show_double
。def show\u double(number)
是定义show\u double
的地方。从某种意义上说,这意味着当您调用show\u double
时,您将用括号中的值替换number
。非常感谢,我想我现在明白了!我想我很难理解的是为什么它需要(number)@user