zoukankan      html  css  js  c++  java
  • Python学习

    一、参数的定义

    1、函数的参数在哪里定义

    在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开

    案列:

    # 利用函数的参数,定义一个可以完成任意两个数相加的函数
    def add_num(a,b):
        c = a + b
        print(c)
    2、带参数的函数调用:

    函数定义了参数,那么调用函数的时候就需要传入参数

    add_num(11,22)
    #运行结果
    33
    上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参

    而我们调用函数的时候传入的参数叫做实参形参是用来接收实参的

    二、参数分类

    上面我们说了形参和实参,那么形参和实参在在定义和调用的时候,根据形式不同有可以分为几类,

    1、根据实参进行分类

    实参:位置参数、关键字参数

    1.1、位置参数(未命名参数)
    def func(a,b,c):
        print(a)
        print(b)
        print(c)
        
    add_num(11,22,33)
    #运行结果
    11
    22
    33

    上述案列中,的函数的三个形参是按位置接收传入的实参,我们把这样的传参的形式叫做位置参数,

    1.2、关键字参数(命名参数)
    def func(a,b,c):
        print(a)
        print(b)
        print(c)
        
    add_num(11,c=99,b=33)
    #运行结果
    11
    33
    99

    调用函数函数的时候,实参通过参数名指定传给某个形参,这样的传参形式,我们把它叫做关键字参数

    注意:传参的时候先写位置参数,再写命名参数

    2、根据形参进行分类

    形参可以分为三类:必备参数、默然参数、不定长参数

    2.1、必备参数:

    在调用函数的时候必须要传的参数

    def add(a,b):
        c=a+b
        print(c)
       
    add(11,22)

    上面函数中的a,b就是必备参数,在调用的函数的时候必须要传,不然就会报错

    2.2、默认参数(缺省参数):

    调用函数的时候可以传可以不传,不传就用默认值

    def func(a,b,c=99):
        print(a)
        print(b)
        print(c)
    ​
    func(11,22,33)
    print('-----------')
    func(55,66)
    ​
    #运行结果:
    11
    22
    33
    ---------------
    55
    66
    99

    通过上述案列中我们可以发现,第一次调用的时候,我们传入了三个参数,c打印出来的是我们传入的值,第二次只传入了两个参数,这个时候c打印出来的是我们定义的时候给它设置的默认值

    注意:带有默认值的参数一定要位于参数列表的最后面。

    2.3、不定长参数*args和 **kwargs

    调用函数的时候可以传0个或者多个

    2.3.1、*args:接收多传入的位置参数,以元祖的形式保存
    def func(*args):
      print(args)
    
    func(33,44,55,66,77)
    func(*(33,44,55,66,77))
    
    #运行结果 
    (33,44,55,66,77)
    (33,44,55,66,77)

    *args,args接收的是一个元祖;

    调用的时候可以直接传入:func(33,44,55,66,77)

    也可以可以先组装list或tuple,再通过*拆包传入:func(*(33,44,55,66,77))

    2.3.2、**kwargs:接收多传入的关键字参数,以字典的形式保存
    def func(**kwargs):
        print(kwargs)
    func(e=33,h=44,f=55,d=66,c=77)
    func(**{'e':33,'h':44,'d':66,'c':77})
    #运行结果
    {'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}
    {'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77}

    **kwargs,kw接收的是一个字典;

    关键字参数既可以直接传入:func(11,22,e=33,h=44,f=55,d=66,c=77)

    也可以先组装dict,再通过**拆包传入:func(**{'e':33,'h':44,'d':66,'c':77})

    注意点:使用*args**kwargs是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/chenyablog/p/15166788.html
Copyright © 2011-2022 走看看