第六天

函数相关

一、全局变量,局部变量

1.全局变量:在任何位置都能调用(不要同名)

2.局部变量:在子进程中定义

name = 'Rice'

def change_name():
  name = 'cool'

  print(name)

#在子程序中,虽然子程序中和全局变量用的是同一个name,但还子进程还是会修改

3.如何修改全局变量

def change_name():

  global name #申明全局变量,可在子进程中修改全局变量

  name = 'Cool'

4.在程序设计中尽量不要修改全局变量

二、递归函数

1.

递归的体现:自己调用自己,循环自身

def cale(n):

  print(n)

  time.sleep(2)#停顿2秒,便于观察

  cale(n) #调用自身

cale(10)

 

2.

递归特性:

必须要有一个明确的结束条件(基底:退出条件,不让就是死循环)

def cale(n):

  if int(n/2) == 0:

    return n # 执行return后退出循环(终止条件)

  res = cale(int(n/2))  #把最终的救国赋值给res

  return res

cale(10)

三、return补充

1.

如果函数中不含return ,则返回None,有则返回return的默认值

def test():
  print('hello')

  return 1

res = test() #最终的结果赋值给res

print(res)

2.

上面函数中,如果直接return res,则返回的是res函数的地址

四、匿名函数-lambda

1.定义匿名函数,没有函数名

lambda x:x+1

2.匿名函数必须要赋值

func = lambda x:x+1

func(1,2) #赋值后传入参数

3.

可以做简单的判断

lambda x:x.starswith('s') -但是不能用if等

4.多参数:
func = lambda x,y,z:x+y+z

res = func(1,2,34)

print(res)

5.以元祖的形式返回多个值

func = lambda x,y,z:(x+1,y+1,z+1)

 

 

 

posted on 2018-10-28 21:25  RiceAChen  阅读(79)  评论(0)    收藏  举报

导航