zoukankan      html  css  js  c++  java
  • day3_python之函数参数

    一、形参

    在定义函数时,括号内的参数称为形参,特点:形参就是变量名
    def foo(x, y):  # x=1,y=2
        print(x)
        print(y)
    

    二、实参

    在调用函数时,括号内的参数成为实参,特点:实参就是变量值
    在调用阶段实参(变量值)才会绑定形参(变量名),调用结束后,解除绑定
    foo(1,2)

    三、参数的分类

    1、位置参数

          按照从左到右的顺序依次定义的参数

                              位置形参:必须被传值,并且多一个不行,少一个也不行
                              位置实参:与形参按照位置一一对应

    def foo(x, y):
        print(x)
        print(y)
    
    foo(1, 2)
    

    2、关键字实参

    指的是按照name=value的形式,指名道姓地给name传值
    def xie(name, age):
        print(name)
        print(age)
    xie(name='xiechao', age=18)
    

    3、位置实参与关键字实参混合用要注意的问题

    #####关键字实参需要注意的问题是:
    def foo(name, age, sex):
        print(name)
        print(age)
        print(sex)
    
    
    foo('egon', 18, 'male')
    print('======>')
    foo(sex='male', age=18, name='egon')
    foo('egon', sex='male', age=18)
    
    ####问题一:语法规定位置实参必须在关键字实参的前面
    foo('egon', sex='male', age=18)
    
    ####问题二:一定不要对同一个形参传多次值
    foo('egon', sex='male', age=18, name='egon1')
    
    foo('male', age=18, name='egon1')
    

    4、默认形参

    在定义阶段,就已经为形参赋值,意味在调用阶段可以不用传值,如果传值的话,就覆盖定义阶段的值
    def foo(x,y=1111111):
        print(x)
        print(y)
    
    
    foo(1,'a')
    
    def register(name,age,sex='male'):
        print(name,age,sex)
    
    
    register('asb',73)
    register('wsb',38)
    register('ysb',84)
    register('yaya',28,'female')
    

    5、默认参数需要注意的问题

    5.1、问题一:默认参数必须放在位置参数之后

    def foo(y=1,x):#报错SyntaxError: non-default argument follows default argument
        print(x,y) 

    5.2、问题二:默认参数只在定义阶段赋值一次,而且仅一次

    x = 100
    
    def foo(a, b=x):  #=100
        print(a, b)
    
    x=111111111111111111111111111111   #再赋值没有用
    foo('egon')  

    5.3、问题三:默认参数的值应该定义成不可变类型

     

  • 相关阅读:
    【LOJ #2320】「清华集训 2017」生成树计数
    【LOJ #2983】「WC2019」数树
    【学习笔记】一类极角排序题
    【学习笔记】斐波那契数列的简单性质
    【LOJ #6041】「雅礼集训 2017 Day7」事情的相似度
    【日常训练】迪杂斯特
    大数据应用技术课程实践--选题与实践方案
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
  • 原文地址:https://www.cnblogs.com/xiechao621/p/7995328.html
Copyright © 2011-2022 走看看