首页 » 与孩子一起学编程 » 与孩子一起学编程全文在线阅读

《与孩子一起学编程》13.3 向函数传递参数

关灯直达底部

现在来看括号做什么用:它用来传递参数(argument)!

不,Carter,计算机非常听话,它们永远也不会争论1。在编程中,参数这个词是指你交给函数的一条信息。我们把这称为:你向函数传递参数。

1 argument 也有“争论”的意思,Carter 显然是把这里的 argument 理解为“争论”了。——编者注

假设你希望对你的所有家庭成员使用这个地址打印函数。所有人的地址都是一样的,但是每一次人名会有所不同。不能在函数中把人名硬编码写成 Warren Sande,你可以建立一个变量。调用函数时将这个变量传递到函数。

要说明这是如何工作的,最容易的方法就是举例子。在代码清单 13-2 中,我修改了地址打印函数,要使用一个对应人名的参数。参数是有名字的,就像其他变量一样。我把这个变量命名为 myName

函数运行时,变量 myName 会填入调用函数时为它传入的任何参数。调用函数时,我们把参数放在括号里,通过这种方式将参数传入函数。

因此,在代码清单 13-2 中,参数 myName 赋值为 Carter Sande。

代码清单 13-2 向函数传递参数

运行代码,你会得到期望的结果:

>>> ===================== RESTART =====================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9>>>

这看上去与第一个程序(没有使用参数)得到的输出完全相同。不过,我们每次可以用不同方式打印地址,比如:

printMyAddress("Carter Sande")printMyAddress("Warren Sande")printMyAddress("Kyra Sande")printMyAddress("Patricia Sande")

现在每次调用函数时输出都不同。人名会变,因为我们每次都向函数传入了不 同的人名。

>>> ========================== RESTART ==========================>>>Carter Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Warren Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Kyra Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9Patricia Sande123 Main StreetOttawa, Ontario, CanadaK2M 2E9

注意,我们向函数传入什么值,函数中就会使用什么值,并作为地址的人名部分打印出来。

如果每次函数运行时有多个信息不同,就需要多个参数。下面就来讨论这个问题。