Python language record---Chapter 2

九、函数:Python的乐高积木

1)def—定义函数
这里写图片描述
2)形参和实参
函数定义过程中的name是叫形参;传递进来的小甲鱼叫实参。
函数文档打印方法:

>>> def MyFirstFunction(name):
    '函数定义过程中的name是叫形参'    ----函数文档
    #因为Ta只是一个形式,表示占据一个参数位置
    print('传递进来的' + name + '叫做实参,因为Ta是具体的参数值!')
>>> MyFirstFunction.__doc__                       ----(函数对象,双下横下开始跟结束)
'函数定义过程中的name是叫形参'
或者
>>> help(MyFirstFunction)
Help on function MyFirstFunction in module __main__:

MyFirstFunction(name)
函数定义过程中的name是叫形参

3)关键字参数

>>> SaySome('小甲鱼', '让编程改变世界!')
小甲鱼->让编程改变世界!
>>> SaySome('让编程改变世界!', '小甲鱼')
让编程改变世界!->小甲鱼
>>> SaySome(words='让编程改变世界!', name='小甲鱼')
小甲鱼->让编程改变世界!

4)默认参数

>>> def SaySome(name='小甲鱼', words='让编程改变世界!'):
    print(name + '->' +words)

>>> SaySome()
小甲鱼->让编程改变世界!
给予默认值,函数未传递参数不报错。

5)收集参数:

>>> def test(*params):
    print('参数的长度是:', len(params));
    print('第二个参数是:', params[1]);

>>> test(1, '小甲鱼', 3.14, 5, 6, 7, 8)
参数的长度是: 7
第二个参数是: 小甲鱼

如果收集参数后面有其他参数,则设置为默认参数比较保险,不会出错。

>>> def test(*params, exp):
    print('参数的长度是:', len(params), exp);
    print('第二个参数是:', params[1]);


>>> test(1,'小甲鱼', 2, 3, 4, 5, 6, 7, 8)
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    test(1,'小甲鱼', 2, 3, 4, 5, 6, 7, 8)
TypeError: test() missing 1 required keyword-only argument: 'exp'
>>> test(1,'小甲鱼', 2, 3, 4, 5, 6, 7, exp=8)
参数的长度是: 8 8

第二个参数是: 小甲鱼

>>> def test(*params, exp=8):
    print('参数的长度是:', len(params), exp);
    print('第二个参数是:', params[1]);


>>> test(1,'小甲鱼', 2, 3, 4, 5, 6, 7, 8)
参数的长度是: 9 8

第二个参数是: 小甲鱼

十、函数与过程

元组不一定需要括号,默认的多个返回如果不加括号,返回的是元组,例:return 1,’小甲鱼’, 2
注意:不要在函数内部去修改全局变量的值。它会在函数内部去建立一个存储数据的值,虽然名字一样,但是访问不同。
例:这里写图片描述

十一、内嵌函数和闭包

1)Global关键字
Python使用屏蔽shadow机制,全局变量被局部变量所屏蔽,局部变量的修改不会影响全局变量。
例 :这里写图片描述
global关键字
这里写图片描述
2)闭包
列表跟nonlocal关键字的使用。

十二、函数lambda:表达式

1)Lambda 参数1,参数2:返回值
例:

>>> lambda x,y:x+y
<function <lambda> at 0x000000000373B2F0>
>>> g=lambda x,y:x+y
>>> g(2,3)
5

2)Lambda表达式的作用

这里写图片描述
3)两个牛逼的BIF
1—filter()
2—map()

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值