20181205-函数学习小结

函数(f(x))

自己定义:将一段特定作用语句,定义成一个名子,作为一个函数。具有可调用,可传参,有作用域等性质。

函数特点:

1. 减少重复代码

2.可扩展(被调用)

3.易维护

 

函数语法:

def   f(a,b)

  print(a,b)

  return

f(1,2)

 

a,b是等待传入的参数,形参,随函数存在,在内存中占个位置

print(a,b) 是执行语句

return  返回函数结果,同时也终结函数

f()是执行语句

1,2是实参,在程序中一直存在

 

参数的几大分类:

参数:位置参数,默认参数,关键参数,非固定参数
例子1:

def f(name,sex,*args,age,country = 'CN'):
print(name,sex,age,args,country)
return
f('Tom','male',1,2,3,4,age=29,country='US')

name ,sex是位置参数,需要按照位置传进去

*args是非固定参数,多传的参数会形 成元祖,会截取到后面的位置 参数

age,country 是关键参数,必须放在最后面,不然会影响位置参数的调入!!

country 指定了默认值,可以不传参则调用默认值;传了则调用传入的值

例子2:

def f(name,sex,*args,**kwargs):
print(name,sex,args,kwargs)
return
f('Tom','male',*[1,2,3,4],age=29,country='US')

运行结果:Tom male (1, 2, 3, 4) {'age': 29, 'country': 'US'}

**kwargs,是非固定参数,最后生成字典,输入参数必须是键值对,后面再不可以放关键参数了。

 

变量的几大分类与使用原则:

全局变量

局部变量

一个函数就是一个作用域;

局部变量是在相应的作用域中生效,优先使用该作用域的局部变量;

使用 局部变量时,不会对外 部 变量进行修改,除非global声明(用得少)

如果没有局部变量,则从作用域向上逐层逐级向上找更高级变量。

 

嵌套函数:

在一个函数作用域中,再定义并调用一个函数

注意参数的作用域原则

变量会逐层逐级向上找

注意命令的执行顺序

 

匿名函数

高阶函数

传入的参数,或者返回结果是另一个函数,这种就称为高阶函数。

 

递归函数

一个函数在内部调用自己,就称为递归函数。三个特性:

1. 需要有明确的结束条件

2. 递归的运算规模需要逐级缩小,趋势接近结束条件

3. 执行的效率不高,需要减少导数(系统层数默许为1000层)

4. 一般是一层层进去,再一层层退出(上一个程序没有完成,需要退出计算);可以使用尾递归来优化程序, 

 

posted @ 2018-12-05 19:47  半山小玉米  阅读(105)  评论(0编辑  收藏  举报