函数参数

1、可变参数,参数个数可变

在参数前面加上* 就代表可变参数

可变参数,在函数内部其实就是一个tuple

def fun(*num):

        sum = 0

        for n in num:

               sum = sum + n

         return sum

# 由于定义函数的参数是可变,所以这里可以写任意多个参数

print(fun(1,2,3,4))

结果是:1+2+3+4=10

# 如果有个list或者tuple,想将里面的每一个元素当做参数传进去,可以在list或者tuple前面加上*,这样list或tuple中的元素就变成了可变参数传进去

nums = [1, 2, 3, 4, 5]

print(fun(*nums))  # *nums表示把nums这个list的所有元素作为可变参数传进去

结果是:1+2+3+4+5=15


二、关键字参数。

关键字参数允许你传入任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

 # 前两个是位置参数,**kw是关键字参数

def  person(name, age, **kw):

print('name=',name,'age=',age,'other',kw)

# 没有传关键字参数

person('lisa', 18)

结果是:name=lisa, age=18,other{}


# 一个关键字参数 ,调用关键字参数,是键值对的形式

person('lisa', 18, city='beijing')

结果是:name=lisa, age=18,other{'city':'beijing'}

# 多个关键字参数

person('lisa', 18, city='beijing',job='teacher')

结果是:name=lisa, age=18,other{'city':'beijing', 'job':'teacher'}


# 将已有的dict当做参数传进去

# **otherDic表示把otherDic这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是otherDic的一份拷贝,对kw的改动不会影响到函数外的otherDic。

otherDic = {'city':'beijing', 'sex':'man', 'job':'student'}

person('lisa', 18, **otherDic)

结果是:name=lisa, age=18,other{'city':'beijing','sex':'man', 'job':'teacher'}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 位置参数 我们先写一个计算x2的函数: 对于power(x)函数,参数x就是一个位置参数。 当我们调用power函...
    喵在野阅读 2,669评论 0 1
  • import math a = absprint(a(-1))n1 = 255print(str(hex(n1))...
    Elder阅读 5,292评论 0 1
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 2,784评论 0 0
  • 函数### 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:...
    MJXH阅读 4,748评论 0 0
  • 本章将介绍函数中参数的用法,更多内容请参考:Python学习指南 定义函数的时候,我们把参数的名字和位置确定下来,...
    小七奇奇阅读 1,423评论 0 2