函数基础-python学习14

函数

定义:函数是组织好的,可以重复使用的,可以实现单一功能的代码。

比如,前面学过的print()函数、int()函数等

括号里放的东西,也就是我们需要输入给函数的数据,它在函数中被称作【参数】。【参数】指向的是函数要接收、处理怎样的数据(你也可以把它理解成自变量)。

自定义和调用函数

格式:def (函数名):                    例如:  def math(x):

                  函数体                                            y=3x+5

                  return语句                                       return y

调用函数: 就是输入函数名和参数所对应的值,这个过程在函数里叫作参数的传递(pass)。


函数的参数

函数中常见的参数有:位置参数、默认参数和不定长参数。

没有return语句的函数,Python也会在末尾隐性地加上return None,即返回None值。

1、位置参数:举例解释

图片来自分变

这里的'话梅花生'和'牛肉拉面'是对应参数的位置顺序传递的,所以appetizer和course被叫作【位置参数】,当有多个参数的时候,我们就必须按照顺序和数量传递,这也是最常见的参数类型。

2、默认参数:

图片来自风变

默认参数,是直接在定义函数的时候里给参数赋值。

需要注意的是:默认参数必须放在位置参数之后。

如果一个函数的某个参数值总是固定的,那么设置默认参数就免去了每次都要传递的麻烦。

默认参数并不意味着不能改变,默认参数也可以给与新的赋值


3、不定长参数:

即传递给参数的数量是可选的、不确定的。

格式比较特殊,是一个星号*加上参数名,它的返回值也比较特殊,如图:

图片来自风变

这里order 的类型是元组,元组中的元素是不可更改的;

不定长参数可以接受任意数量的值。


返回多个值:

要返回多个值,只需将返回的值写在return语句后面,用英文逗号隔开即可;

这里用到的是random模块中的.choice()随机选择函数;


多个函数间的配合:

一个程序往往是通过多个函数的配合来实现的;

当多个函数同时运行时,就涉及函数中一个非常重要的概念 —— 变量作用域;

举例:

变量作用域:程序中的变量并不是在哪个位置都可以被使用的,使用权限决定于这个变量是在哪里赋值的。关于这个概念,目前我们只需要掌握下面两点即可:

第一点:一个在函数内部赋值的变量仅能在该函数内部使用(局部作用域),它们被称作【局部变量】,如cost()函数里的variable_cost,他只能用于cost()内部,不能再第10行,sum_cost()函数中使用。

第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们被称作【全局变量】,如第一行的rent

那要怎么解决“局部变量”和”全局变量“之间的矛盾呢?有几种方法可供参考,第一种方法最取巧:把局部变量都放在函数外,变成全局变量

那有没有一个能在函数内修改的方法呢?这时候global语句就能派上用场了,它可以将局部变量声明为全局变量,如下图:

global语句一般写在函数体的第一行,它会告诉Python,“我希望variable_cost是个全局变量,所以请不要用这个名字创建一个局部变量”。所以上面图中的sum_cost()函数内部现在可以直接使用声明后的全局变量variable_cost

你可能感兴趣的:(函数基础-python学习14)