使用元组or字典作为函数参数
2018-03-19 19:07
309 查看
一.使用元组作为函数的参数代码示例1:
# -*- coding: utf-8 -*- #
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)
print powersum(2,3,4)
print powersum(2,3,4,5)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/7a72f93e3caf20ad1f0e4003f7645615)
代码示例2:
# -*- coding: utf-8 -*- #
def addsum(a,b=2,*args):
print u'类型',type(args)
print u'参数个数',len(args)
sum=0
for i in args:
sum+=i
print sum+a+baddsum(1,2,3,4)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/e38d1191c73577dbae325820e3e773a4)
二.使用字典作为函数的参数代码示例1:
# -*- coding: utf-8 -*- #
def fun2(a,b=100,*args,**keys):
print "keys type=%s" % type(keys)
print "keys=%s" % str(keys)
print "name=%s" % str(keys['name'])
print "sex=%s" % str(keys['sex'])
sum=0
for i in args:
sum+=i
print sum+a+b
fun2(1,2,3,4,name="vp",age=19,sex="m")
#1:对应a
#2:对应的b变量
#3,4:对应的args,在函数中生成了一个args的元组
#name="vp",age=19,sex="m":对应的是keys,在函数中生成了一个keys的字典
# *args **args 是不是写在多个参数的最后?yes
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/87b2da1407d7d0f41bb1c62c0a3afd22)
总结:
#*args和**args: 都可以接受可变长度的参数个数 区别:
*args表示的是一个元组
**args表示的是一个字典
三.同时使用*和**的函数参数
代码示例1:
#coding=utf-8
def sum(a,*arg,**args):
sum=0
sum=sum+a
for i in arg:
sum=sum+int(i)
for i in args.values():
sum=sum+int(i)
return sum
print sum(1,2,3,4,b=5,c=6,d=7)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/99dfa1312dc8bc4d6dd9558a7341580b)
代码示例2:
#coding=utf-8
def printInfo(a, c=4, *tup, **dic) :
print a
print c
print tup
print dic
#调用函数printInfo
printInfo(2,3,4,5, x=1, y=2)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/23/9204e02f6c93fd740081ed3ece6d590c)
按照参数赋值顺序,a=2,c=3,4和5存在元组tup中,x=1, y=2存在字典dic中。 由此可以看出,传参时元组和字典传参的区别,元组就跟传普通参数一样,而字典中的元素是由键值对组成,所以传参时就需要传键值表达式。
# -*- coding: utf-8 -*- #
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)
print powersum(2,3,4)
print powersum(2,3,4,5)
代码示例2:
# -*- coding: utf-8 -*- #
def addsum(a,b=2,*args):
print u'类型',type(args)
print u'参数个数',len(args)
sum=0
for i in args:
sum+=i
print sum+a+baddsum(1,2,3,4)
二.使用字典作为函数的参数代码示例1:
# -*- coding: utf-8 -*- #
def fun2(a,b=100,*args,**keys):
print "keys type=%s" % type(keys)
print "keys=%s" % str(keys)
print "name=%s" % str(keys['name'])
print "sex=%s" % str(keys['sex'])
sum=0
for i in args:
sum+=i
print sum+a+b
fun2(1,2,3,4,name="vp",age=19,sex="m")
#1:对应a
#2:对应的b变量
#3,4:对应的args,在函数中生成了一个args的元组
#name="vp",age=19,sex="m":对应的是keys,在函数中生成了一个keys的字典
# *args **args 是不是写在多个参数的最后?yes
总结:
#*args和**args: 都可以接受可变长度的参数个数 区别:
*args表示的是一个元组
**args表示的是一个字典
三.同时使用*和**的函数参数
代码示例1:
#coding=utf-8
def sum(a,*arg,**args):
sum=0
sum=sum+a
for i in arg:
sum=sum+int(i)
for i in args.values():
sum=sum+int(i)
return sum
print sum(1,2,3,4,b=5,c=6,d=7)
代码示例2:
#coding=utf-8
def printInfo(a, c=4, *tup, **dic) :
print a
print c
print tup
print dic
#调用函数printInfo
printInfo(2,3,4,5, x=1, y=2)
按照参数赋值顺序,a=2,c=3,4和5存在元组tup中,x=1, y=2存在字典dic中。 由此可以看出,传参时元组和字典传参的区别,元组就跟传普通参数一样,而字典中的元素是由键值对组成,所以传参时就需要传键值表达式。
相关文章推荐
- python里函数怎么样使用元组或字典作为参数调用
- python使用元组、字典向函数传递多个参数、python冗余参数处理
- python 元组和字典中元素作为函数调用参数传递
- 使用JSON作为函数的参数
- 关于matlab使用函数作为参数的方法
- python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
- python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
- linux多线程创建时使用类成员函数作为参数
- 类作为参数给另一个类的成员函数使用注意点
- CButtonST的使用之把CButtonST的对象作为函数参数
- Python学习19:其他应用(列表综合、列表或元组作为函数参数、lambda形式)
- 使用函数模版作为函数参数
- 漫谈C指针:函数指针作为函数参数使用
- python datetime和str转换 计算时间差;Python 函数接收元组和字典参数
- C#的Replace函数,使用函数作为的参数需要注意
- 使用标量值函数作为主键自增值的时候,动软代码生成器的插入方法需要去掉主键的参数。
- 二维数组如何作为函数参数使用?
- linux多线程创建时使用类成员函数作为参数
- 使用指针作为函数返回值和参数的问题总结
- linux多线程创建时使用类成员函数作为参数