Day5 - 04 函数的参数-可变参数*
2024-09-07 06:43:31
传入的参数的个数是可变的。
例子:定义一个函数,通过给出一组数,返回这组数中最大值与最小值的和。
def msum(numbers):
r = max(numbers) + min(numbers)
return r
>>>msum([1,2,3,4,5])
6
numbers需要为list或者tuple,相当于:
a = [1,2,3,4,5]
msum(a)
如果使用可变参数,那么调用函数时的变化如下:
未使用可变参数:msum([1,2,3,4,5])
使用可变参数: msum(1,2,3,4,5)
def msum(numbers):
r = max(numbers) + min(numbers)
return r
>>>msum([1,2,3,4,5])
6
numbers需要为list或者tuple,相当于:
a = [1,2,3,4,5]
msum(a)
如果使用可变参数,那么调用函数时的变化如下:
未使用可变参数:msum([1,2,3,4,5])
使用可变参数: msum(1,2,3,4,5)
将函数参数改为可变参数:
def msum(*numbers):
r = max(numbers) + min(numbers)
return r
运行结果:
>>> def msum(*numbers):
... r = max(numbers) + min(numbers)
... return r
...
>>> msum(1,2,3,4)
5
>>> msum(1,2,5,7,8,9,123,323123)
323124
在参数前加*号后,参数numbers接收到的是一个tuple,因此在代码完全不变的情况下,调用函数可以传入任意个参数。
调用可变参数
如果已经有了一个list或tuple,调用一个可变参数的方法:
>>> a = [1,2,3,4,5,6]
>>> msum(a[0],a[1],a[2],a[3],a[4],a[5])
7
太麻烦了。
在list或tuple前加*号,把list或tuple的元素变为可变参数传进函数!
>>> a = [1,2,3,4,5,6,7,8,10,12,123123123,122]
>>> msum(*a)
123123124
*a 表示把a这个list的所有元素作为可变参数传递到msum函数中。
这种写法非常常见,非常有用。
def msum(*numbers):
r = max(numbers) + min(numbers)
return r
运行结果:
>>> def msum(*numbers):
... r = max(numbers) + min(numbers)
... return r
...
>>> msum(1,2,3,4)
5
>>> msum(1,2,5,7,8,9,123,323123)
323124
在参数前加*号后,参数numbers接收到的是一个tuple,因此在代码完全不变的情况下,调用函数可以传入任意个参数。
调用可变参数
如果已经有了一个list或tuple,调用一个可变参数的方法:
>>> a = [1,2,3,4,5,6]
>>> msum(a[0],a[1],a[2],a[3],a[4],a[5])
7
太麻烦了。
在list或tuple前加*号,把list或tuple的元素变为可变参数传进函数!
>>> a = [1,2,3,4,5,6,7,8,10,12,123123123,122]
>>> msum(*a)
123123124
*a 表示把a这个list的所有元素作为可变参数传递到msum函数中。
这种写法非常常见,非常有用。
最新文章
- wordpress上传图片时重命名--修改插件时遇到的一些问题
- 【openGL】指定着色模型
- EF调用函数日期查询
- Hadoop 系列 - (1) - 学习随笔 - 起源、构成
- 修改Servlet模板
- IOS开发之UIView的基本使用
- Android Fragment与Activity之间的数据交换(Fragment从Activity获取数据)
- 探秘ReSharper8.1版本中Architecture(架构工具)的改进
- get,post,jsonp数据交互—百度下拉列表
- iKcamp|基于Koa2搭建Node.js实战(含视频)☞ HTTP请求
- 我的 FPGA 学习历程(06)—— 二进制转格雷码
- vi命令保存
- spring InitializingBean和DisposableBean init-method 和destroy-method @PostConstruct @PreDestroy
- LOJ2116 [HNOI2015] 开店 【点分治】
- insertBefore(),appendChild()创建添加列表实例
- oracle上机实验内容
- elasticsearch之JAVA环境变量报错:could not find java; set JAVA_HOME or ensure java is in PATH
- 现有工程中集成Cordova
- python图像处理 模式转化简单总结
- 转载:mysql添加用户、删除用户、授权、修改密码