函数

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值