zoukankan      html  css  js  c++  java
  • Python -函数的参数定义

    一、函数的参数有四种,位置参数、默认参数、可变参数和关键字参数

    def func(x, y=0, *arg, **args):
        '''x为位置参数
          y有默认值
          *arg为可变参数
          **args为关键字参数
        '''
        print('x= ', x)
        print('y= ', y)
        print('*arg= ', arg)
        print('**arg= ', args)

    二、仅输入位置参数时,默认参数会打印默认值

    >>> func(1)
    x=  1
    y=  0
    *arg=  ()
    **arg=  {}

    三、输入两个参数

    >>> func(1,2)
    x=  1
    y=  2
    *arg=  ()
    **arg=  {}

    三、可变参数:可变参数接收0个或多个参数。输入的多个参数会自动组合成一个tuple,变成可变参数

    >>> func(1,2,3,4,5)
    x=  1
    y=  2
    *arg=  (3, 4, 5)
    **arg=  {}

    可变参数可以直接接收一个list或者tuple,但是要在参数前面加上*

    >>> list1 = [3, 4, 5]
    >>> tuple1 = (3, 4, 5)
    >>> func(1,2,*list1) x= 1 y= 2 *arg= (3, 4, 5) **arg= {}
    >>> func(1,2,*tuple1) x= 1 y= 2 *arg= (3, 4, 5) **arg= {}

    四、关键字参数:关键字参数接收0个或多个带参数名的参数,这些参数会自动组合为一个dict,变成关键字参数

    >>> func(1, 2, [3, 4, 5], 6, name='alex', age=18)
    x=  1
    y=  2
    *arg=  ([3, 4, 5], 6)
    **arg=  {'name': 'alex', 'age': 18}

    关键字参数可以直接接收一个dict,但是要在参数前面加上**

    >>> dict1 = {'name': 'Alex', 'age': 18}
    
    >>> func(1, 2, [3, 4, 5], 6, **dict1)
    x=  1
    y=  2
    *arg=  ([3, 4, 5], 6)
    **arg=  {'name': 'Alex', 'age': 18}

    五、实例说明

    1、入参为可变参数

    def sum(*nums):#求所有入参之和
        sum = 0
        for num in nums:
            sum += num
        return sum

    输入0个或多个参数,查看结果:

    >>> print('sum()= ', sum()) #输入0个参数,相当于传一个空元组
    sum()=  0
    
    >>> print('sum(1,2,3)= ', sum(1,2,3))
    sum(1,2,3)=  6
    
    >>> print('sum(*[1,2,3])= ', sum(*[1,2,3]))
    sum(*[1,2,3])=  6
    
    >>> print('sum(*(1,2,3))= ', sum(*(1,2,3)))
    sum(*(1,2,3))=  6

    2、入参为关键字参数

    def user_info(name, age, **others): #获取用户信息
        print(name, age, others)

    输入用户信息,查看结果:

    >>> user_info('zhang',18) #关键字参数为空时,返回一个空字典
    zhang 18 {}
    
    >>> user_info('wang',19, city='shanghai',salary=500)
    wang 19 {'city': 'shanghai', 'salary': 500}
    
    >>> user_info('li',20, sex='M')
    li 20 {'sex': 'M'}
    
    >>> user_info('zhou',21,**{'sex': 'W', 'city': 'beijing', 'salary': 3000})
    zhou 21 {'sex': 'W', 'city': 'beijing', 'salary': 3000}
  • 相关阅读:
    C. Dima and Salad 背包好题
    centos7下查看cup核数
    code码说明
    数据库慢查询
    centos7重启Mysql命令
    many connection errors,更改max_connection_errors的值
    CentOS7 linux下yum安装redis以及使用
    django Warning: (3135, "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes
    linux命令
    linux命令解压压缩rar文件的详细步骤
  • 原文地址:https://www.cnblogs.com/jessicaxu/p/7735701.html
Copyright © 2011-2022 走看看