函数

来源:互联网 发布:拍小视频创意点子 知乎 编辑:程序博客网 时间:2024/06/14 00:44

Python乐高积木(一)函数

1.定义函数

def <名字>(参数1,参数2):

2.调用

<名字>(参数1,参数2)

3.return

返回给函数一个值

def add(num1,num2):    return(num1+num2)print(add(5,6))

注意函数(有结果)与过程(无结果)的不同
形参 只是一个名字,没有具体参数。
实参 是具有具体参数的
4.默认参数和关键字参数

关键字参数是在调用时 默认函数是在定义时
5.收集参数

def test(*par):  print('参数长度:',len(par))  print('第二个参数是',par[1])test(1,2,3,4,5)

6.局部变量和全局变量

局部变量在函数中
要在函数中修改全局变量,Python会在函数中再生成一个局部变量。
global关键字,在函数中可用 global <参数名>改变全局变量。

7.内嵌函数和闭包

def fun1():  print('1')  def fun2():      print('2')  return fun2()def fun1(x):  def fun2(y):      return x+y  return fun2

8.lambda表达式

lambda返回的是一个值

f = lambda x,y,z : x+y+z  print f(1,2,3)

9.filter过滤器

list(filter(lambda x : x % 2,range(10)))

10.map()

list(map(lambda x : x + 2,range(10)))

11.递归函数

递归函数:在函数内部,调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 用来理解lijie

汉诺塔

def move(n, a, b, c):  if n == 1:      print('move', a, '-->', c)  else:      move(n-1, a, c, b)      move(1, a, b, c)      move(n-1, b, a, c)>>> move(4, 'A', 'B', 'C')

在使用递归函数使要注意栈溢出,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。(使用尾递归优化)

def fact(n):  if n==1:      return 1  return n * fact(n - 1)

#尾递归优化后,尾递归是在函数返回的时候,调用自身本身,并且,return语句不能包含表达式

def fact(n):  return fact_iter(n, 1)def fact_iter(num, product):  if num == 1:      return product  return fact_iter(num - 1, num * product)
原创粉丝点击