Python学习笔记之函数(四)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012561176/article/details/81948254

1、传递任意数量的实参,可以在形参的参数底下加个 * 符号,在我们预先不知道要函数要接受多少实参的时候,就可以使用这种方式,函数就可以从调用语句中收集任意数量的实参。 示例代码如下:

#传递任意数量的实参
	
def test(*name):
    for n in name:
        print("来吧,名字都来吧:" + n);

test('xg','lc','haha');
print('\n................\n');
test('xg')

运行后如下图所示:

2、结合使用位置实参和任意数量实参 ,如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在 后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到后一个形参中。

示例代码一如下:

#结合使用位置实参和任意数量实参
	
def test(age,*name):
    for n in name:
        print("来吧,名字都来吧:" + n + "年龄是:" + str(age));

test(21,'xg','lc','haha');
print('\n................\n');
test(22,'xg');

运行后如下图所示:

示例代码二:

#结合使用位置实参和任意数量实参
	
def test(age,sex,*name):
    for n in name:
        print("来吧,名字都来吧:" + n);
    print("年龄为:" + str(age) + "性别为:" + sex);

test(21,'哈哈','xg','lc','haha');

运行后如下图所示:

错误代码示例一,如果修改代码为如下:

def test(age,sex,*name):
    for n in name:
        print("来吧,名字都来吧:" + n);
    print("年龄为:" + str(age) + "性别为:" + sex);

test(21,sex='哈哈','xg','lc','haha');

运行后如下图所示:

错误代码示例二,如果修改代码为如下:

def test(age,*name):
    for n in name:
        print("来吧,名字都来吧:" + n);
    print("年龄为:" + str(age));

test('xg','lc','haha',21);

运行后如下所示:

如果改为:

def test(age,*name):
    for n in name:
        print("来吧,名字都来吧:" + str(n));
    print("年龄为:" + str(age));

test('xg','lc','haha',21);

运行后如下图所示,这样就不符合了,所以通常都是把任意数量实参放到最后面进行处理:

3、使用任意数量的关键字实参,有时候,需要接受任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够接受任意数量的键值对——调用语句提供了多少就接受多少。下面示例代码使用一个**的形参来接受实参的字典,代码如下:

#使用任意数量的关键字实参
	
def test(age,sex,**info):
    users = {};
    users['age'] = age;
    users['sex'] = sex;
    for key, value in info.items():
        users[key] = value;
    return users;
	
print(test(21,'Fmale',hobby='play game',major='computer'));

运行后如下图所示:

以上内容仅供大家学习参考,谢谢!

猜你喜欢

转载自blog.csdn.net/u012561176/article/details/81948254
今日推荐