python 中关于定义函数的讲解以及案例分析(全文中的案例,我都是以图片的形式展现的,主要是让学员自己敲打代码,加深印象,省的直接复制粘贴,那样子很无用!)

python递归函数处理文件 python递归函数的基例_赋值

定义一个函数,再调用这个函数:

def 开头,后接函数名称和圆括号()。

参数,自变量房子啊圆括号内,圆括号之间可定义参数。

函数第一行可用字符串解释说明定义。

内容以冒号:开始,并且要缩进。

return【表达式】结束函数,选择性的返回一个值给调用方,不带表达式的return相当于返回None.

案例分析:

python递归函数处理文件 python递归函数的基例_不可变类_02

关于参数的传递

字符串,元组,数字是不可更改对象,而列表,字典是可以修改对象。

不可变类型:变量赋值 a=5,再赋值a=10,实际上是新生成了一个int值的对象10,再让a指向它。 而5被丢弃,不是改变a的值。相当于新生成了a.

在定义调用函数时也同理,fun(a)传递的只是a的值,没有影响a对象本身,比如在fun(a)内部修改a的值,只是修改另一个复制对象,不会影响a本身。

不可变类型:变量赋值a=[1,2,3,4]后再赋值a[2]=5,则是将list a的第三个元素值更改,本身a没动,只是内部一部分值被修改了。

可变类型:fun(a)将a真正传递过去,修改后fun外部的a也会受影响。

案例分析:

不可变类型:案例一;可变类型:案例二。

python递归函数处理文件 python递归函数的基例_python递归函数定义_03

函数补充:

不定长参数:加了*号的变量名会存放所有未命名的变量参数。

匿名参数:用lambda 创建匿名参数。用法:lambda[arg1[,arg2……argn]]:experession

局部和全局变量:(作用域)

global:可将变量定义为全局变量(全局变量想作用与局部时)。

案例分析:通过下图案例可以知道,*为元组,**为字典。

python递归函数处理文件 python递归函数的基例_不可变类_04

递归函数:

定义:函数调取自身。 一切递归实现的功能都可以用循环实现,但是由的时候递归函数更易读。

下面案例分析的就是递归函数与普通函数的区别:

案例算法的介绍,就是在算数学题中的阶乘。 n(n-1)(n-2)(n-3)(n-4)......

python递归函数处理文件 python递归函数的基例_python递归函数处理文件_05