• python知识点@函数的使用(2)


    参数:就是函数括号里的内容 函数在调用的时候指定一个具体的变量的值 就是参数

    def 函数名(参数):
        函数体
    

    形参和实参

    在开发中,我们常常会听到“形参”和“实参”这两个词,那么,何为形参?何为实参呢?
    先给大家给实例

    def multip(a,b):#形参
        return a*b
    multiplication = multip(10,20)#实参
    print(multiplication)
    输出:200
    

    我们从上面的代码中可以看出实参是一个实实在在存在的参数就是10,20,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的,如在上面例子中,a和b就是两个“形参”,它们在multip函数定义的时候在括号中占位。告诉函数体,有两个入参。当我们调用multip函数时传入的10和20就是“实参”,是我们具体传的值。传参:给函数传递信息的时候将实际参数交给形式参数的过程被称为传参。

    参数的分类

    位置参数

    def makeFrinds(chat,name,age):
        print(chat)
        print(name)
        print(age)
        print("利用{}软件认识了一位:{}:年龄:{}的小姐姐".format(chat,name,age))
    makeFrinds("微信","小花","20") #位置参数
    """
    微信
    女
    小花
    20
    利用微信软件认识了一位:小花:年龄:20的小姐姐
    """
    

    我们可以从上面的代码知道,我们传的参数是按照顺序一个一个进行传参的了,在传参过程中.系统会按照位置把实参赋值到形参,形参就是一个变量名,实参就是具体的值 传参就是在赋值。

    关键字参数

    我们在开发过程中,我们的函数需要传入大量的参数的,我们使用位置参数就不是非常方便,有可能会忘记那个参数没有传参,也不容易记住,而导致调用函数报错,所以python中关键字参数可以解决这个问题。

    def makeFrinds(chat,name,age):
        print(chat)
        print(name)
        print(age)
        print("利用{}软件认识了一位:{}:年龄:{}的小姐姐".format(chat,name,age))
    makeFrinds(age="20",name="小花",chat="微信")  # 关键字参数
    输出:
    微信
    小花
    20
    利用微信软件认识了一位:小花:年龄:20的小姐姐
    

    从上面的代码中我们可以发现关键字参数不用记住每个参数的位置. 只要记住每个参数的名字就可以了

    默认参数

    定义函数时直接给形参给定一个值,如果调用时未给值,就用定义函数时给定的默认值

    def makeFrinds(name,age,chat="微信"): #默认参数chat形参默认给传的值是微信
        print(name)
        print(age)
        print(chat)
    makeFrinds("小花","20","QQ")
    输出:
    小花
    20
    QQ
    

    从上面的代码我们可以发现默认参数chat形参默认给传的值是微信让QQ给覆盖了,可以说明实参传的值大于默认形参的值

    位置参数、关键字参数、默认参数 位置优先级顺序

    def makeFrinds(chat,name,age):
        print(name)
        print(age)
        print(chat)
    makeFrinds("小花","20",chat="QQ")
    输出:
    makeFrinds("小花","20",chat="QQ")
    #makeFrinds("小花","20",chat="QQ")
    TypeError: makeFrinds() got multiple values for argument 'chat'
    
    def makeFrinds(name,age,chat):
        print(name)
        print(age)
        print(chat)
    makeFrinds("小花","20",chat="QQ")
    

    从上面的代码我们可以发现位置参数必须在关键字参数前面

    def makeFrinds(age,chat="微信",name):
        print(age)
        print(chat)
        print(name)
    makeFrinds("小花","20","QQ")
    #输出:
        def makeFrinds(age,chat="微信",name):
                       ^
    SyntaxError: non-default argument follows default argument
    
    def makeFrinds(name,age,chat="微信"):
        print(age)
        print(chat)
        print(name)
    makeFrinds("小花","20","QQ")
    #输出
    小花
    20
    QQ
    

    从上面的代码我们可以发现位置参数必须在默认参数前面

    def makeFrinds(name,age="30",chat):
        print(name)
        print(age)
        print(chat)
    makeFrinds("小花","20",chat="QQ")
    #出:
    def makeFrinds(name,age="30",chat):
                       ^
    SyntaxError: non-default argument follows default argument
    
    def makeFrinds(name,chat,age="30"):
        print(name)
        print(chat)
        print(age)
    makeFrinds("小花",chat="QQ",age=20)
    #输出:
    小花
    QQ
    20
    

    从上面的代码我们可以发现关键字参数在默认参数前面

    从上可以总结:位置参数>关键字参数>默认参数

    本人所有原创文章
    第一时间发布至此公众号「进击的bug」

    关注后,回复「进击」试试,会有您意想不到的编程视频学习大礼包,

  • 相关阅读:
    [转]进程的用户栈和内核栈
    什么是URL,URL格式
    设计灵感
    Spring源码学习相关记录
    HTML图片标签路径解析
    一次Spring Bean初始化顺序问题排查记录
    是要面向对象,还是简单粗暴?
    2018/07/26学习节点记录
    数据结构-堆 Java实现
    2018 ICPC 徐州邀请赛 总结
  • 原文地址:https://www.cnblogs.com/gxj521test/p/13584778.html
Copyright © 2020-2023  润新知