• Python——函数的参数


    函数的参数分为:

    1. 必须参数

    2. 关键字参数

    3. 默认参数

    必须参数

    最基本的特性是,我们在函数的参数列表里面定义的参数是必须要传递的。

    def add(x,y):
        result = x +y
        return result

    我们在调用这个函数的时候,必须要给x和y分表要进行赋值,如果两个都不赋值或者只给一个赋值,是会报错的。

    我们在定义这个函数的时候,在这个参数列表里面给了x y,我们可以叫x 和 y 叫做形式参数,简称 形参 。

    有形式参数,相对应的就有实际参数,简称 实参。

    实际参数是指在调用函数的过程中,我们往函数参数列表里面传递的实际的取值。

    关键字参数

    我们拿上一个函数来举例

    def add(x,y):
        result = x +y
        return result

    必须参数在调用的时候是讲究一个顺序的,第一个传入的实参是x的值,第二个传入的是y的值

    那如果我们要第一个传入的是y值,第二个传入的是x值该如何去实现呢

    关键字参数可以不用考虑函数参数的顺序,可以任意指定参数的顺序从而实现参数的调用

    c = add(y = 5,x = 2)

    这样就能先给y赋值了。当然,如果赋值一个参数还是不行的,有多少形参,就要有多少个实参。

    默认参数

    如果我们需要函数的参数列表很长,而我们又需要多次使用这个函数,有很多的参数会重复输入,那我们就可以给这个函数设置一个默认值

    def print_student_files(name,gender,age):
        print('我叫' + name)
        print('我今年' + str(age) + '')
        print('我是'+ gender + '')

    这是一个记录学生姓名你、年龄、性别的函数(注意,第三行的age要转换成字符串,因为字符串不能和int类型相加)

    >>> print_student_files('安妮','',18)
    我叫安妮
    我今年18岁
    我是女生

    如果有30个同学,大多数都是18岁的女生。那么我们可以用到默认参数:

    def print_student_files(name,gender='',age=18):
        print('我叫' + name)
        print('我今年' + str(age) + '')
        print('我是'+ gender + '')

    这样,我们只需要输入名字就可以了

    >>> print_student_files('曼妮')
    我叫曼妮
    我今年18岁
    我是女生

    如果有个同学年龄和性别和设置的默认值不一样,则需要传递对应参数:

    >>> print_student_files('约翰','',19)
    我叫约翰
    我今年19岁
    我是男生

    总结一下默认参数的规则:

    在定义的时候,如果你想让某个参数拥有默认值,那么久在形参的后面加上一个'=',并且把默认值赋给这个形参

    如果你没有给某个形参设置默认值,那么你一定要传递给一个实参。

    易错点:

    必须参数加上默认参数,后面再加一个必须参数

    错误实例1:

    def print_student_files(name,gender='',age):
        print('我叫' + name)
        print('我今年' + str(age) + '')
        print('我是'+ gender + '')
    SyntaxError: non-default argument follows default argument

     报错:不能把非默认参数放在默认参数之后

    错误实例2:

    我们要更改第二个默认参数(年龄),第一个默认参数(性别不变)

    假设我们把每个参数都转换成字符串

    >>> def print_student_files(name,gender='',age=18):
        print('我叫' + str(name))
        print('我今年' + str(age) + '')
        print('我是'+ str(gender) + '')
    
    >>> print_student_files('安妮',17)
    我叫安妮
    我今年18岁
    我是17生

    解决方法:

    我们把年龄17当做性别传入进了性别的参数里。解决方法是运用关键参数

    >>> print_student_files('安妮',age = 17)
    我叫安妮
    我今年17岁
    我是女生

    错误实例3:

    把默认参数和必须参数混着一起调用:

    >>> print_student_files('安妮',gender='',17)
    SyntaxError: positional argument follows keyword argument
  • 相关阅读:
    javaSE一些实习问题
    java并行程序基础
    http与https协议
    mybatis-plus 狂神说笔记
    弄懂java bio 和 nio 一篇就够 !!!
    异步操作Promise
    uni-app,vue-cli3或4的跨域
    7.vue之v-on
    Linux Shell 错误: $' ': command not found错误解决
    visual studio 容器工具首次加载太慢 vsdbgvs2017u5 exists, deleting 的解决方案
  • 原文地址:https://www.cnblogs.com/Luna-kaka/p/8996754.html
Copyright © 2020-2023  润新知