python中函数的可变参数

论坛 期权论坛 期权     
编程创造城市   2019-7-28 10:11   5855   0
知识回顾:
1.函数关键字参数
2.函数的参数的默认值。必须从右边写到左边。


本节视频教程
[iframe]https://v.qq.com/iframe/preview.html?width=500&height=375&auto=0&vid=v0905sprkjm[/iframe]
文字教程开始:
一、【其实已经用过】可变参数
回顾系统自带的可变参数函数print
#系统自带的可变参数函数
print(1,2,"hello","刘金玉编程","编程创造城市",end="$$$")

如果我们想要开始自定义可变参数,只需要在函数参数的前面加上一个星号*
在函数体内部,默认情况下,带有*的参数传入的变量,我们输出的时候是元组类型。
如果要输出可变参数,由于数元组类型,我们往往针对元组类型的方式进行输出,参数可以用for循环来进行输出。

二、可变参数+普通参数  结合用法1
1.可变参数在开头的位置的情况
说明一下:如果可变参数在函数参数的开头的位置,普通参数在函数的第二个位置以后,那么在调用函数的时候,我们必须要采用关键字参数的用法,否则函数调用直接报错,报缺少调用参数的错误。
调用举例:
def add2(*a,b):
    result=0
    for v in a:
        result+=v
    result+=b
    return result

print()
print(add2(1,2,3,4,5,b=10))

2.可变参数在中间的情况
注意:可变参数前面的参数变量,在调用函数的时候传参,传入的结果是可变参数前面的这些参数都分别作为前面参数的参数变量。可变参数后面的变量,必须使用关键字参数进行传入。
#定义可变参数在中间的情况
def add3(a,*b,c):
    result=a
    for v in b:
        result+=v

    result*=c
    return result

#调用可变参数在中间的情况
print(add3(1,2,3,4,c=5))

可变参数在中间的情况的注意点:
注意:可变参数前面的参数变量,在调用函数的时候传参,传入的结果是可变参数前面的这些参数都分别作为前面参数的参数变量。可变参数后面的变量,必须使用关键字参数进行传入。
#定义可变参数在中间的情况
def add3(a,*b,c):
    result=a
    for v in b:
        result+=v

    result*=c
    return result

#调用可变参数在中间的情况
print(add3(1,2,3,4,c=5))

三、总结强调
1.掌握可变参数的函数定义
2.掌握可变参数函数的几种不同情况的用法:可变参数在开头、可变参数在中间、可变参数在末尾。

本节源代码:
  1. #系统自带的可变参数函数
复制代码
  1. print(1,2,"hello","刘金玉编程","编程创造城市")
复制代码
  1. [/code][code]def add1(*a):
复制代码
  1.     for v in a:
复制代码
  1.         print("【"+str(v)+"】",end=" ")
复制代码
  1.     pass
复制代码
  1. [/code][code]add1(1,2,3,34,564)
复制代码
  1. [/code][code]def add2(*a,b):
复制代码
  1.     result=0
复制代码
  1.     for v in a:
复制代码
  1.         result+=v
复制代码
  1.     result+=b
复制代码
  1.     return result
复制代码
  1. [/code][code]print()
复制代码
  1. print(add2(1,2,3,4,5,b=10))
复制代码
  1. [/code][code]
复制代码
  1. #定义可变参数在中间的情况
复制代码
  1. def add3(a,*b,c):
复制代码
  1.     result=a
复制代码
  1.     for v in b:
复制代码
  1.         result+=v
复制代码
  1. [/code][code]    result*=c
复制代码
  1.     return result
复制代码
  1. [/code][code]#调用可变参数在中间的情况
复制代码
  1. print(add3(1,2,3,4,c=5))
复制代码
  1. [/code]执行结果:
  2. [list][*][*][*][*][/list][code]1 2 hello 刘金玉编程 编程创造城市
复制代码
  1. 【1】 【2】 【3】 【34】 【564】
复制代码
  1. 25
复制代码
  1. 50
复制代码
长按关注公众号


相关文章:
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP