码迷,mamicode.com
首页 > 编程语言 > 详细

ZMAN的学习笔记之Python篇:函数可变长参数

时间:2015-02-26 16:12:07      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

 

ZMAN的学习笔记之Python篇:

  1.装饰器

  2.函数“可变长参数”

 

 

  这次来聊聊Python中函数的“可变长参数”,在实际中经常会用到哦~

 

 一、什么是“可变长参数”

  “可变长参数”就是向一个函数传入不定个数的参数。比如我写一个函数:传入一个学生参加各科目考试的成绩,求平均分,如两个学生分别传入(92, 91, 88)和(88, 95),因为每个学生参加的考试个数不同,因此传入的参数个数也就不同了,遇到这种情况,我们在定义函数的时候,可以使用“可变长参数”。

 

二、在定义函数时使用“可变长参数”

 

# 完整打印函数的可变参数
def func(*args, **kwargs):
    print(args)
    print(kwargs) 


func(1, hello, a=2, c=world)


>>>
(1, hello)
{a: 2, c: world}

  

  以上代码定义了一个最简单的分别接收两种“可变长参数”的函数,一种是“非关键字参数”,数据结构为:元组注:元组不能被修改);另一种是“关键字函数”,数据结构为:字典

  此时,我们就可以依次传入数个非关键字参数和数个关键字参数,不能混搭传入~我们可以用如下这段代码依次打印出接收到的参数:

# 依次打印函数的可变参数
def func(*args, **kwargs):
    for arg in args:
        print(arg:, arg)
    for value in kwargs:
        print(%s: % value, kwargs[value])


func(1, hello, a=2, c=world)


>>>
arg: 1
arg: hello
a: 2
c: world

 

三、在调用函数时使用“可变长参数”

  我们也可以在调用函数时传入一个“可变长参数”,如下所示:

 

def func(name1, name2, name3):
    print(第一个人:%s % name1)
    print(第二个人:%s % name2)
    print(第三个人:%s % name3)


name_tuple1 = (Mary, John, Jane)
name_tuple2 = (Rose, Mike)
func(*name_tuple1)
func(Luna, *name_tuple2)


>>>
第一个人:Mary
第二个人:John
第三个人:Jane
第一个人:Luna
第二个人:Rose
第三个人:Mike

 

  在这段代码中,我定义func函数的参数个数为3,所以请确保在调用该函数时传入的参数数量也是3哟~

 

四、实际应用

#:假设传入一个班级的名字、班级所获荣誉,以及各位任课老师的名字和年龄
def welcome(name, *args, **kwargs):
    print(%s共获得了%d项荣誉,分别是: % (name, len(args)))
    for i in range(len(args)):
        print(%d. %s % (i+1, args[i]))

    age_sum = 0  # 年龄和
    print(该班共有%d名老师,他们的名字和年龄如下: % len(kwargs))
    for value in kwargs:
        age_sum += kwargs[value]
        print(%s: %d岁 % (value, kwargs[value]))
    print(老师们的平均年龄是%.1f岁\n % (age_sum/len(kwargs)))


welcome(计算机1班, 校优秀班级, 最佳凝聚力, Mary=27, Peter=35, John=32)
welcome(软件2班, 上海市优秀班级, 校合唱比赛冠军, 最佳凝聚力, Peter=34, Rose=28, Hans=33)


>>>
计算机1班共获得了2项荣誉,分别是:
1. 校优秀班级
2. 最佳凝聚力
该班共有3名老师,他们的名字和年龄如下:
Peter: 35岁
John: 32岁
Mary: 27岁
老师们的平均年龄是31.3岁

软件2班共获得了3项荣誉,分别是:
1. 上海市优秀班级
2. 校合唱比赛冠军
3. 最佳凝聚力
该班共有3名老师,他们的名字和年龄如下:
Peter: 34岁
Rose: 28岁
Hans: 33岁
老师们的平均年龄是31.7岁

  

  这个例子也是自己编的,能帮助大家理解主题内容就好~

 

 

ZMAN的学习笔记之Python篇:函数可变长参数

标签:

原文地址:http://www.cnblogs.com/zmanone/p/4301209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!