day6:函数、(局部、全部变量)、递归

 1 def test01(*args): #agrs接收到是位置参数
 2     print(args)
 3 
 4 test01("zhangsan","moll")
 5 test01(*["wanger","wangda"])
 6 
 7 def test02(**kwargs):#kwargs接收到N个关键字参数
 8     print(kwargs)
 9 test02(name1="moll",age=18)
10 test02(**{'name':"wpd",'age':28})

 

一、函数

1、形参

2、实参

3、默认参数

特点:

1、可重复利用

2、可扩展

3、维护性好

 

二、局部、全部变量

 

 

 1 #!usr/bin/python
 2 #Author:mollsweet
 3 
 4 city="beijing"
 5 hobby=["swimming","badminton"]
 6 def city_name():
 7     global city
 8     hobby[0]="tourism"
 9     city="chengdu"
10     print(city)
11     print(hobby)
12 city_name()
13 print(city)

 

输出结果:

 

三、递归

概念:是指在函数的定义中使用函数自身的方法。

在使用递归时,需要注意以下几点:

  • 递归就是在过程或函数里调用自身
  • 必须有一个明确的递归结束条件,称为递归出口。

注意: 切勿忘记递归出口,避免函数无限调用

优点:

  • 递归使代码看起来更加整洁、优雅
  • 可以用递归将复杂任务分解成更简单的子问题
  • 使用递归比使用一些嵌套迭代更容易

缺点:

  • 递归的逻辑很难调试、跟进
  • 递归调用的代价高昂(效率低),因为占用了大量的内存和时间。

实例:数学公式计算,阶层

 

1 def factorial(n):
2     if n==1:
3         return 1
4     else:
5         return n*factorial(n-1)

 

四、高阶函数

 

1 def add(a,b,f):
2     add=f(a)+f(b)
3     print(add)
4 add(1,-2,abs)

实际就是将传递的参数中将其他一个内置函数,或者一个值进行传递赋值

posted @ 2018-11-05 23:11  mollsweet  阅读(65)  评论(0)    收藏  举报