Python简明教程第5节:函数

函数

其实和数学上说的函数也没什么大的差别,就是将一系列的操作集中在一起。

eg:F(x) = 5x^2 + 6x + 24    当你给定一个 x 的时候,就会有函数的定义得到一个结果。当我们多次需要这样一种计算规则的时候,我们定义了这个函数,下次当我们需要这样的操作的时候,我们只需要 F(2),F(5)就可以得到结果,而不必:2^2 + 6*2 + 24 , 5^2 + 6*5 + 24 这样繁琐的表达。

在Python中也大概是这样的,一些重复的功能被我们封装成函数,以便于重复利用。

最简单的,也是你经常使用的 print()函数,这就是一个Python 内置的一个封装好的函数。这是Python基于全局的考虑,帮我们封装好的众多函数之一。当然我们也可以根据自己需要封装自己的函数来完成自己的工作。下面就简单介绍下定义函数的规则:

def  func_name( parameters ):

       函数体

由 def 关键字 ,函数名 ,  (参数列表): ,  函数体四部分组成。

tips:函数体必须缩进。参数列表放在圆括号中间。一般而言,在我们调用函数的时候,需要按照参数列表的顺序进行传参。


函数调用

在刚才的小建议中,已经提到了函数的调用,就像数学中的给F(x) 中的 x 赋值一样,我们也需要给参数列表赋值。

Python简明教程第5节:函数_第1张图片
函数定义和调用

在这个例子中我们传递一个参数到函数体内,然后得到结果。

在Python语言设计的时候借鉴了许多其他语言优秀的设计。接下来我们对上面小建议进行展开。刚才我们说“一般而言,在我们调用函数的时候,需要按照参数列表的顺序进行传参。”其实这就是一般而言,其实Python 可以像 C++ 一样设置默认参数,而且改变传参的顺序。还是举个栗子吧:

我们定义一个打印中国人个人信息的函数:

Python简明教程第5节:函数_第2张图片
传参和默认参数

上面函数的定义中,我们使用了默认参数,就是说,这个参数本身就是有值的,如果有传参进来的值就是用传进来的值,没有的话就使用默认的值。上面的栗子也可以说明这个问题,打印中国人信息,我们默认为国籍是中国,但是也有许多中国籍犹太人,中国籍美国人 这种稍有差别的需要区分,使用默认参数很方便说明这个问题。

不按顺序传参的时候,需要使用参数名来与参数列表进行对应,另外默认参数使用的时候尽量不要改变传参顺序,非要改变的话,也需要使用参数名来与参数列表进行对应,以免出错。

不定参数

我们计算两个数的和

我们计算三个数的和

我们计算四个数的和

我们计算五个数的和

……

难道我们需要分别定义一个函数么?


Python简明教程第5节:函数_第3张图片
不定参数

一个带星号(*)的变量名会存放所有未命名的变量参数。此例中,传入的参数就被存储在 vartuple 中。

匿名函数

其实匿名函数只是一个 lambda 表达式 ,格式简单,功能也有限,不适合封装复杂的逻辑。

格式:lambda [arg1 ,arg2,.....argn]:expression


Python简明教程第5节:函数_第4张图片
匿名函数

其他

在一段程序中的变量并不是在哪个位置都可以访问的。访问权限决定于这个变量的作用域。变量的作用域决定了在哪一部分程序你可以访问这个变量。定义在函数内部的变量拥有一个局部作用域,所以它叫做局部变量,定义在函数外的拥有全局作用域,它被叫做全局变量。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。


Then,that’s all,thank you。

你可能感兴趣的:(Python简明教程第5节:函数)