Python学习之函数(二)

    xiaoxiao2022-07-07  251

    参数分为 形式参数parameter 和 实际参数(argument)

    ‘’’ 形式参数:指的是函数创建和定义过程中小括号里面的参数 实际参数:指的是函数在调用时传递进去的参数 ‘’’ #函数文档 ‘’’ 给函数写文档是为了更加的容易理解函数,类似于注释

    def MyfirstFunction(name): ‘函数定义过程中的name是叫形式参数’ #因为它至少一个形式,表示占据一个参数位置 print(‘传递进来的’ + name + ‘叫做实际参数,因为它是具体的参数值!’)

    MyfirstFunction(‘lq’)

    传递进来的 lq 叫做实际参数,因为它是具体的参数值!

    查看注释:

    MyfirstFunction.doc

    ‘函数定义过程中的name是叫形式参数’

    也可使用print查看文档

    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.”

    ‘’’

    #关键字参数 ‘’’

    def SaySome(name,words): print(name + ‘->’ + words)

    SaySome(‘Jane’,‘girl’) Jane->girl

    指定参数

    SaySome(words=‘Jane’,name=‘girl’) girl->Jane

    ‘’’

    #默认参数 ‘’’ 在定义时赋值

    def SaySome(name=‘nice’,words=‘girls’): print(name + ‘->’ + words)

    直接调用函数,不带参数,运行如下:

    SaySome() nice->girls

    给他一个参数,运行如下:

    SaySome(‘Many’) Many->girls

    SaySome(‘Many’,‘girls and boys’) Many->girls and boys

    ‘’’

    #收集参数(也称可变参数,原因解决函数需要多个参数) ‘’’

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

    test(1,‘你好’,3.14,5,6,7,8) 参数的长度是: 7 第二个参数是: 你好

    ##形参前面加 * 号 为收集参数 把标志为收集参数的参数用元组打包起来,放到params的元组名字中去。 如果收集参数需要加其他定制的参数,在调用函数时需要使用关键字参数来定制,否则会把后面的参数全部列为收集参数的范畴

    例:

    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#35>”, line 1, in test(1,‘你好’,3.14,5,6,7,8) File “<pyshell#34>”, line 2, in test print(‘参数的长度是:’,len(params),exp); NameError: name ‘exp’ is not defined

    需要使其正常运行则需要如下添加

    test(1,‘你好’,3.14,5,6,7,exp = 8) 参数的长度是: 6 8 第二个参数是: 你好

    ##print本身就有一个收集参数 print(*objects)

    最新回复(0)