一、向函数中传递任意数量的实参

有时候,你预先不知道函数需要接受多少个实参,Python中函数可以收集任意数量的实参。

栗子:来看一个打印好友列表功能的函数,它需要接收任意数量的好友名。如下:

 def print_friends(*friends):
"""打印好友名"""
print(friends) print_friends('jhson')
print_friends('joker','jack','nacy')

console:

解释:上面的函数中只有一个形参  *friends,但不管调用语句提供多少实参,这个形参都能将它们统统收入囊中,

形参名 *friends 中的星号让Python创建一个名为friends的空元组,并将收到的所有值都放入这个元组中。函数体内

的print 语句通过生成输出来证明Python能够处理使用一个值调用函数的情形,也能处理使用三个值调用函数的情形。

它以类似的方式处理不同的调用,需要注意的是,函数将收到的值放入元组中,即使只有一个值也是如此。

我们改进下,用循环打印这个元组中的值:

 def print_friends(*friends):
"""打印好友名"""
print("\nmy friends :")
for friend in friends:
print(friend) print_friends('jhson')
print_friends('joker','jack','nacy')

console:

不管收到一个值还是三个值,这个函数都能妥善处理,其实不管函数实参是多少个,这种语法都管用。

二、使用任意数量的关键字实参

有时候,需要接收任意数量的实参,但预先不知道传递给函数的会是什么样的信息。在这种情况下,可将函数编写成能够

接收任意数量的键-值对,调用语句提供了多少就接收多少。

栗子:你知道你将收到有关用户的信息,但不确定是什么样的信息,如下:

 def user_profile(first,last,**user_info):
"""创建一个字典,其中包含我们知道有关用户的一切"""
profile={}
profile['first_name'] = first
profile['last_name'] = last
for key ,value in user_info.items():
profile[key] = value
return profile user_profile = user_profile('joker','pan',sex='male',country='China')
print(user_profile)

console:

解释:函数user_profile() 的定义要求提供名和姓,同时允许用户根据需要提供任意数量的名称-值对。形参中的**user_info中的两个星号,

让Python创建一个名为user_info的字典,并将收到的所有名称-值对都封装到这个字典中。在这个函数中像访问其他字典那样访问user_info

中的名称-值对。在这里不仅将名和姓传入函数,还将性别和所属国家也传入,该函数也能正确处理并返回包含用户信息的字典。

传递参数的方式有很多种,牢记使用最简单的方法来完成任务就好了。

世界很公平,比你忙的人赚的比你多,比你闲的人你赚的比他少。

Python中的函数(5)的更多相关文章

  1. Python中split()函数的用法及实际使用示例

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  2. Python中利用函数装饰器实现备忘功能

    Python中利用函数装饰器实现备忘功能 这篇文章主要介绍了Python中利用函数装饰器实现备忘功能,同时还降到了利用装饰器来检查函数的递归.确保参数传递的正确,需要的朋友可以参考下   " ...

  3. python中range()函数的用法

    python中range()函数可创建一个整数列表,一般用在for循环中. range()函数语法: range(start,stop[,step]) 参数说明: star: 计数从star开始.默认 ...

  4. Python 中的函数

    学了 Python 中的数据类型,语句,接下来就来说一下 Python 中的函数,函数是结构化编程的核心.我们使用函数可以增加程序的可读性.自定义函数时使用关键字def 函数由多条语句组成.在定义函数 ...

  5. python中format函数

    python中format函数用于字符串的格式化 通过关键字 1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字 2 grade = {'nam ...

  6. Python中readline()函数 去除换行符

    从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: f = open ...

  7. Python中int()函数的用法浅析

      int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int)  Help on class int in module __builti ...

  8. 【313】python 中 print 函数用法总结

    参考:python 中 print 函数用法总结 参考:Python print() 函数(菜鸟教程) 参考:Python 3 print 函数用法总结 目录: 字符串和数值类型 变量 格式化输出 p ...

  9. python中filter函数

    python中filter()函数   filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断 ...

  10. Python中print()函数不换行的方法

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

随机推荐

  1. Zeppelin的入门使用系列之创建新的Notebook

    前期博客 hadoop-2.6.0.tar.gz + spark-1.6.1-bin-hadoop2.6.tgz + zeppelin-0.5.6-incubating-bin-all.tgz(mas ...

  2. hdu 2818 Building Block 种类并查集

    在进行并的时候不能瞎jb并,比如(x, y)就必须把x并给y ,即fa[x] = y #include <iostream> #include <string> #includ ...

  3. 通过split命令分割大文件

    场景 线上出了问题,我需要去查找log来定位问题,但是由于线上数据量庞大,这些log文件每过一个小时就会自动回滚一次,尽管如此,有的log文件依然达到了五六g以上的大小. 对于这种巨大的log文件,常 ...

  4. c++ 头文件路径选择

    单文件引用头文件./ 当前目录 ../ 父级目录 / 根目录              多文件引用头文件多文件引用头文件 定义单独放在cpp文件里面 ,声明放在().h)里面

  5. excel导入phpmyadmin

    1.将excel文件另存为txt文件,再将txt文件保存为.csv文件同时修改编码为UTF8 2.登录phpmyadmin,在phpmyadmin中创建好表格,按excel中的顺序创建每列 3.因为p ...

  6. php.ini配置文件位置

    laravel之今天遇到个意想不到的问题: 我在测试文件上传,大于2M的文件时候hasFile() 方法报错,这一定是文件大小限制.接下来就跳坑了 1.首先查找php.ini的位置,就用find / ...

  7. [LOJ6041雅礼集训2017]事情的相似度

    题解 \(SAM+set\)启发式合并+扫描线 首先可以发现题目要求的就是查询结尾在一段区间内的\(LCS\) 这个显然就是\(SAM\)的\(parent\)树上的\(step[LCA]\) 我们可 ...

  8. Hdu 5446 Unknown Treasure (2015 ACM/ICPC Asia Regional Changchun Online Lucas定理 + 中国剩余定理)

    题目链接: Hdu 5446 Unknown Treasure 题目描述: 就是有n个苹果,要选出来m个,问有多少种选法?还有k个素数,p1,p2,p3,...pk,结果对lcm(p1,p2,p3.. ...

  9. 贪心+拓扑排序 AOJ 2456 Usoperanto

    题目传送门 题意:给出一条链,比如x连到y,x一定要在y的左边,且代价是这条链经过的点的权值和,问如何排序使得代价最小 分析:类似拓扑排序,先把入度为0的点入队,把指向该点的所有点按照权值排序,保证这 ...

  10. 134 Gas Station 加油站

    在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i].你有一辆油箱容量无限的的汽车,从第 i 个加油站前往第 i+1 个加油站需要消耗汽油 cost[i].你从其中一个加油站出发,开始 ...