DAY6.函数与Lambda表达式

No.5函数与Lambda表达式
一、函数
1、创建函数def
语法:def myfunction():
语句
2、调用函数
语法:myfunction()
函数内容
3、函数的参数
e.g.>>>def a(name):
print(name+‘少年’)
>>>a(‘壁花’)
壁花少年
e.g.>>>def add(b,c):
result=b+c
print(result)
>>>add(1,2)
3
4、函数的返回值
e.g.>>>def add(num1,num2):
return(num1+num2)
>>>print(add(2,3))
5
5、形参和实参
e.g.a(name):
a(壁花)
name是形参
壁花是实参
6、函数文档
对函数的内容、参数、意义、返回值等内容进行介绍
help(a)
7、关键字参数
e.g.>>>def saysome(name,truth):
print(name+truth)
>>>saysome(truth='是张琳爸爸‘,name=‘杜安芸’)
杜安芸是张琳爸爸
8、默认参数
e.g.>>>saysome(‘day’)
day是张琳爸爸
9、收集参数:在形参前加*(因为会不知道有几个参数)
e.g.>>>def test(a):
print(‘参数长度是:’,len(a));
print('第二个参数是:’,a[1]);
>>>test(1,2,5,‘a’,9)
参数长度是:5
第二个参数是:2
e.g.>>>def test(a,exp):
print(‘参数长度是:’,len(a),exp);
print('第二个参数是:’,a[1]);
>>>test(1,2,5,‘a’,9,exp=8)
参数长度是:5 8
第二个参数是:2
10.局部变量和全局变量
全局变量作用于整个文件
局部变量只作用于被定义的语句段
注:如果试图修改全局变量的话,python会自动创建一个名字相同的局部变量代替。所以尽量不要在函数内修改全局变量
11、内嵌函数和闭包
1)、global关键字
把想要变成全局变量的局部变量用global关键字定义。
e.g. a) count=5
def fun()
count=10
>>>print(count)
5
b) count=5
def fun()
global count=10
>>>print(count)
10
2)、内嵌(内部)函数(函数的嵌套)
e.g.def fun1():
print('fun1被调用)
def fun2():
print(‘fun2被调用’)
fun2()
>>>fun1()
fun1被调用
fun2被调用
注意:内部函数的作用域都在外部函数内
3)、闭包(一种编程范式)
e.g. def FunX(x):
def FunY(y):
return x
y
return FunY
>>>FunX(8)(5)
40
注:内部函数只能对外部函数的变量使用,不能修改
e.g. def fun1():
x=5
def fun2():
x
=x
return x
return fun2
>>>fun1()
error(错误)
可改为:
def fun1():
x=[5]
def fun2():
x[0]=x[0]
return x[0]
return fun2()
>>>fun1()
25
也可改为:
def fun1():
x=5
def fun2():
nonlocal x
x
=x
return x
return fun2
>>>fun1()
25
二、Lambda函数
语法:lambda 参数1,参数2,… : 返回值
e.g.>>>lambda x:2x+1
>>>g=lambda x:2
x+1
>>>g(5)
11
三、两个BIF
1、filter(函数或none,可迭代数据) (过滤器)
若第一个参数为函数,则将可迭代数据每一个元素作为函数函数参数计算,将返回true的值筛选出来;若第一个元素为none,则将第二个参数中true的值筛选出来。
e.g. >>> list(filter(lambda x:x%2,range(10)))
[1,3,5,7,9]
2、map(函数,可迭代序列)(映射)
将序列的每一个元素进行加工,直到可迭代序列的每一个元素都加工完毕,返回新的序列
e.g. >>> list(map(lambda x:x*2,range(10)))
[0,2,4,6,8,10,12,14,16,18]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值