函数一词来源于数学,但编程中的“函数”概念与数学中的函数有很大不同。编程中的函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
A.课程内容
本节课学习python里面的一个黑魔法——函数,帮助我们提高代码的复用性,并最终利用它制作一个万花筒。
B.知识点
(1)random模块
(2)定义函数
(3)调用函数
C.用到的基本指令
(1)def
(2)random.choice()
(3)random.randint()
(4)print()
(5)for循环
D.函数
为什么要使用函数呢?因为函数可以简化程序、提高应用的模块性和代码的重复利用率。
通过之前的学习,我们了解到python程序提供了许多内建函数,比如print()。不过Python也允许你自己创建函数,并在程序中调用它。
定义函数使用def关键词,后面是函数名,然后是圆括号和冒号。冒号下面的缩进部分为函数的内容,如下图:
(1)实参和形参
如果我们在定义函数的时候,在括号中增加一个变量(如“name”),这样python就会在用户调用函数的时候,要求用户给变量name指定一个值,如下图所示: 向函数传递信息
上面实例中的变量name实际上是函数test()的一个参数,称为形参。形参在整个函数体内都可以使用,离开该函数则不能使用。
调用函数时,“test('冰墩墩')”中的‘冰墩墩’也是一个参数,成为实参。实参是调用函数时传递给函数的信息。在调用函数时,将把实参的值传送给被调函数的形参。上图程序中,python会将实参的值(即‘冰墩墩’)传递给形参name。这时,name的值变为‘冰墩墩’。因此执行“print(name+‘你好,欢迎登陆派森号飞船’)”语句时就会打印输出“冰墩墩你好,欢迎登陆派森号飞船”。
(2)位置实参
函数在定义时,允许包含多个形参,同样在调用时,也允许包含多个实参。
如上图,在有多个形参和实参的函数中,当用户调用函数时,python必须将函数调用中的每个实参都关联到函数定义中的一个形参。这时python会按照参数的位置顺序来传递实参。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。
(3)关键字实参
关键字实参是传递给函数的名称-值对。由于直接在实参中将名称和值关联起来了,因此向函数传递实参时不会混淆,也不用考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途,如下图所示:
函数调用时,关键字实参的顺序无关紧要。因此若将上面程序中函数调用语句修改为“students(grade='五年级',name='小明')”语句,其输出结果与上面程序的输出结果也是相同的。
(4)默认值
默认值就是在定义形参的时候,给形参默认赋一个值。这样在调用函数时,如果给形参提供了实参,python将使用指定的实参值;否则,将使用形参的默认值。如果给形参设置了默认值,那么在调用函数时,可以省略相应的实参,直接使用默认值,如下图所示:
(5)可变数量实参
当预先不知道函数需要接收多少个实参时,可在定义函数时,在形参的前面加一个星号()。这样python就会在调用函数时将所有实参指定给带星号的形参,组成一个元组,如下图所示:
上面实例中,形参name中的星号让python创建一个名为“name”的空元组,并将所有的实参封装到这个元组中。
如果在定义函数时,想创建一个空字典,可以添加一个前面加两个星号()的形参,如下图所示:
上面实例中,形参province中的两个星号让python创建一个名为“province”的空字典,并将所有的实参封装到这个字典中。
网友评论