鱼C论坛

 找回密码
 立即注册
查看: 3215|回复: 0

[学习笔记] 018函数:灵活即强大

[复制链接]
发表于 2017-6-22 22:12:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.函数的形参(形式参数parameter)和实参(实际参数argument);
>>>def MyFirstFunction(name):
‘函数定义过程中的name是叫形参’
#因为Ta只是一个形式,表示占据一个参数位置
Print(‘传递进来的’ + name +‘叫做实参,因为Ta是具体的参数值!’)
>>>MyFirstFunction(‘小甲鱼’)
传递进来的小甲鱼叫做实参,因为Ta是具体的参数值!
2.函数文档
在Python中将函数体内首行字符串作为函数文档,字符串中对函数的功能和参数的含义进行说明,可以通过使用函数名加成员操作符跟上__doc__的形式返回这个字符串以备使用者查看,也可以通过help(函数名)形式直接打印出这个字符串;
>>> MyFirstFunction.__doc__
'函数定义过程中的name是叫形参'
>>> help(MyFirstFunction)
Help on function MyFirstFunction in module __main__:

MyFirstFunction(name)
函数定义过程中的name是叫形参
>>> print.__doc__
"print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n\nPrints the values to a stream, or to sys.stdout by default.\nOptional keyword arguments:\nfile:  a file-like object (stream); defaults to the current sys.stdout.\nsep:   string inserted between values, default a space.\nend:   string appended after the last value, default a newline.\nflush: whether to forcibly flush the stream."
>>> help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
3.关键字参数
当函数定义了多个形参时,调用函数时实参与形参需一一对应,便能得到自己想要的结果;
>>> def SaySome(name,words):
        print(name + '->' + words)
>>> SaySome('小甲鱼','让编程改变世界!')
小甲鱼->让编程改变世界!
>>> SaySome('让编程改变世界!','小甲鱼')
让编程改变世界!->小甲鱼
>>> SaySome(words = '让编程改变世界!', name = '小甲鱼')
小甲鱼->让编程改变世界!
4.默认参数
函数定义的过程中给形参赋初值,这样函数调用过程中即使没传入相应实参也能正常执行;
>>> def SaySome(name = '小甲鱼', words = '让编程改变世界!'):
        print(name + '->' + words)

        
>>> SaySome()
小甲鱼->让编程改变世界!
>>> SaySome('仓井空')
仓井空->让编程改变世界!
>>> 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, '小甲鱼', 3.14, 5, 6, 7, 8)
Traceback (most recent call last):
  File "<pyshell#45>", line 1, in <module>
    test(1, '小甲鱼', 3.14, 5, 6, 7, 8)
TypeError: test() missing 1 required keyword-only argument: 'exp'
>>> test(1, '小甲鱼', 3.14, 5, 6, 7, exp = 8)
参数的长度是: 6 8
第二个参数是: 小甲鱼
>>> def test(*params, exp = 8):
        print('参数的长度是:', len(params),exp);
        print('第二个参数是:', params[1]);

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

评分

参与人数 1鱼币 +5 收起 理由
小甲鱼 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 17:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表