递归函数,修改全局变量,高阶函数

一个函数调用自己本身,就是递归调用

    递归调用的三个条件

          1.必须有结束条件

          2.规模必须每次减少

            3.缺点容易导致栈溢出,所以一般调用层次是999层

 def func(n):
   print(n)
   return func(n+1)
 func(1)                             999层


 

def fun(n):
  if n >1:
    result = n*fun(n-1)
  else:
    result = 1

  return result

s= fun(4)

print(s)                 n的阶乘

2、修改全局变量

name= 'suqin'

def test1():
  name = 'lvhonglei'           #局部变量
print(name)

test1()
print(name)


name= 'suqin'

def test1():
  global name                #声明要修改的全局变量
  name = 'lvhonglei'
print(name)

test1()
print(name)

如果全局变量是字典、列表,那么不用global声明,即可修改

 

3

一个函数接受另外一个函数作为参数,称之为高阶函数

 

def add(a,b,f):              #  f 是一个函数
  return f(a)+ f(b)
s = add(3,-9,abs)
print(s)                    基本工作中用的很少

 

posted @ 2017-07-18 17:36  西湖歌舞几时休  阅读(475)  评论(0编辑  收藏  举报