|
|
10鱼币
019-函数-课后题里,当定义收集多参数 def m(*name),如何使用 name=input('小猫',‘乌龟’,‘章鱼’)来输入这些多参数呢?
在课后题里,小甲鱼用的类似是 m('小猫',‘乌龟’,‘章鱼’) ,但是这样就只能用在程序里 事先定义好的参数了,
但是我想用 input 来收集这些参数,来实现 与 小甲鱼那种内部定义的方法 一样的效果的功能。
这是程序代码(小甲鱼方法)
- def m(*name):
- return (name)
- print( m('小猫','小狗','章鱼',520) )
复制代码
这是运行结果(小甲鱼方法):生成一个元组,含有四个元素
- >>>
- ('小猫', '小狗', '章鱼', 520)
复制代码
①用input收集 print( m(name) )
- def m(*name):
- return (name)
- name=input('请输入需要收集的姓名:')
- print( m(name) )
复制代码
运行结果:生成一个元组,但只有一个元素,这样不行!
- >>>
- 请输入需要收集的姓名:'小猫','小狗','章鱼',520
- ("'小猫','小狗','章鱼',520",)
复制代码
②用input收集 print( m( *name) )
- def m(*name):
- return (name)
- name=input('请输入需要收集的姓名:')
- print( m( *name) ) #在name前加了 * 号
复制代码
运行结果:一个元组,但每个字符都被分开了成1个了,这样也不行!
- >>>
- 请输入需要收集的姓名:'小猫','小狗','章鱼',520
- ("'", '小', '猫', "'", ',', "'", '小', '狗', "'", ',', "'", '章', '鱼', "'", ',', '5', '2', '0')
复制代码
快来大神帮我想想办法! |
最佳答案
查看完整内容
def m(*s,k):
h = sum(s)
z = h*k
return z
temp=input('请输入数字,以空格隔开(默认最后一个参数为关键字参数,也可指定关键字参数,用k=指定):\n')
list1=temp.split()
list2=[]
x=None
for each in list1:
if 'k=' in each :
x=int(each[2:])
else:
list2.append(int(each))
if x==None:
x=list2.pop()
print(m(*list2,k=x))
|