当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 。这种方法在函数需要获取可变数量的参数 的时候特别有用。
[注意]
[1] 由于在args变量前有*前缀 ,所有多余的函数参数都会作为一个元组存储在args中 。如果使用的是**前缀 ,多余的参数则会被认为是一个字典的健/值对 。
[2] 对于def func(*args):,*args表示把传进来的位置参数存储在tuple(元组)args里面。例如,调用func(1, 2, 3) ,args就表示(1, 2, 3)这个元组 。
[3] 对于def func(**args):,**args表示把参数作为字典的健-值对存储在dict(字典)args里面。例如,调用func(a='I', b='am', c='wcdj') ,args就表示{'a':'I', 'b':'am', 'c':'wcdj'}这个字典 。
[4] 注意普通参数与*和**参数公用的情况,一般将*和**参数放在参数列表最后。
[元组的情形]
- #! /usr/bin/python
- # Filename: tuple_function.py
- # 2010-7-19 wcdj
- def powersum(power, *args):
- '''''Return the sum of each argument raised
- to specified power.'''
- total=0
- for i in args:
- total+=pow(i,power)
- return total
- print 'powersum(2, 3, 4)==', powersum(2, 3, 4)
- print 'powersum(2, 10)==', powersum(2, 10)
- ########
- # output
- ########
- powersum(2, 3, 4)==25
- powersum(2, 10)==100
[字典的情形]
- #! /usr/bin/python
- # Filename: dict_function.py
- # 2010-7-19 wcdj
- def findad(username, **args):
- '''''find address by dictionary'''
- print 'Hello: ', username
- for name, address in args.items():
- print 'Contact %s at %s' % (name, address)
- findad('wcdj', gerry='gerry@byteofpython.info', /
- wcdj='wcdj@126.com', yj='yj@gmail.com'
在gvim中的输出结果:
参照:http://blog.csdn.net/delphiwcdj/article/details/5746560
相关推荐
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器...
这篇主要探讨 ** 和 * 前缀运算符,**在变量之前使用的*and **运算符. 一个星(*):表示接收的参数作为元组来处理 两个星(**):表示接收的参数作为字典来处理 简单示例: >>> numbers = [2, 1, 3, 4, 7] >>> ...
Python-进阶函数 多参数解析 元组:使用*args非关键字可变参数 字典:使用**kwargs关键字可变参数方式 三种参数:func(fargs, *args, **kwargs) 闭包 ①在一个外函数中定义了一个内函数 ②内函数里运用了...
此外,函数还需要能够处理列表和元组作为输入,将列表和元组中的所有元素转换为其对应的ASCII码值,并将这些ASCII码值相加。 输入说明:函数接收两个参数,第一个参数可以是整数、字符串、列表或元组,第二个参数也...
本案例主要针对元组的基本使用的考察,元组是不可变序列,创建元组可以通过()创建,也可以通过tuple()构造函数创建,元组的索引规则和列表相同,但是不能索引赋值。 任务 菜单生成器 任务目标 掌握元组的概念与创建 ...
在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. ...
更多Python的内容 <br>特殊的方法 <br>单语句块 <br>列表综合 <br> 使用列表综合 <br>在函数中接收元组和列表 <br>lambda形式 <br> 使用lambda形式 <br>exec和eval语句 <br>...
在python中对一个元组排序 我的同事Axel Hecht 给我展示了一些我所不...默认情况下内置的sort和sorted函数接收的参数是元组时,他将会先按元组的第一个元素进行排序再按第二个元素进行排序。 然而,注意到结果中(0, ‘B
在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于...
2.编写函数f(s), 接收字符串参数, 返回一个元组,元组的第一个值为大写字母的个数, 第二个值为小写字母个数。调用函数f(s)在屏幕上输出字符串"Hello Betty and Tom !"中大写字母和小写字母的个数。 3.编写函数min_...
主要是 用来表示函数接收可变长度的非关键字参数列表作为函数的输入。 **kwargs:表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现 主要是 用来表示函数接收可变长度的关键字参数列表作为函数的输入。...
在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. ...
在函数中接收元组和列表 lambda形式 使用lambda形式 exec和eval语句 assert语句 repr函数 概括 16. 接下来学习什么? 图形软件 GUI工具概括 探索更多内容 概括 A. 自由/开放源码软件(FLOSS) B. 关于本书 后记 ...
python的重点和难点是什么_Python基础⼊门的难点... 在刷题的过程中,map()函数通常可以结合输⼊⼀起使⽤,例如在⼀⾏中输⼊3个整数,可⽤如下语句:a,b,c = map(int, input().split()) reduce()函数 reduce()函数接收
Python中,元组装包拆包是自动的,不需要任何函数,导致很多人对于函数返回值一会有括号一会没括号非常迷惑 a,b,c=1,2,3 #等价于 a,b,c=(1,2,3) print(a,type(a)) #因为等号左边只有1个变量,而等号右边有3个值, #...
2.8 列表和元组 2.9 字典 2.10 代码块及缩进对齐 2.11 if语句 2.12 while循环 2.13 for循环和range()内建函数 2.14 列表解析 2.15 文件和内建函数open()、file() ...
这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pathon中的函数可以使用不定长参数,可以用参数*args接收...
当我们的函数接收参数为任意个,或者不能确定参数个数时,我们,可以利用 * 来定义任意数目的参数,这个函数调用时,其所有不匹配的位置参数会被赋值为元组,我们可以在函数利用循环或索引进行使用 def f(*args): ...
定义函数的时候,在参数前加了一个 * 号,函数可以接收零个或多个值作为参数。返回结果是一个元组。 传递零个参数时函数并不报错,而是返回一个空元组。但以上这种方法也有局限性,它不能收集关键字参数。 对关键字...
17.7 在C代码中使用Python 对象 342 17.8 本章小结 345 17.9 习题 346 第18章 数值编程 347 18.1 Python语言中的数值 347 18.1.1 整数 348 18.1.2 长整数 348 18.1.3 浮点数 349 18.1.4 格式化数值 350 18.1.5 作为...