我正在尝试使用* args进行函数编写。它应该输入一定的数字,然后输出数字乘以10的乘积。
我正在学习使用* args,但是在获取输出时遇到了麻烦。我的结果仅输出函数中的第一个数字。我尝试过使用for循环,以为它会遍历每个字符,但是没有用。
def myfunc(*args):
for args1 in args:
return args1*10
当我运行函数时:
myfunc(10.1,20)
预期输出应为
(101.0,200.0)
实际输出是
(101.0)
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
如果我了解您,那就是您所需要的:
def myfunc(*args):
return tuple(map(lambda x: x*10, args))
可以在函数中以称为*args
的列表的形式检索 args
。您在这里所做的只是将第一个元素乘以10并返回它,因此函数停止了。
答案 1 :(得分:0)
您应该使用yield
而不是return
,以使函数返回生成器,然后可以在需要时将其转换为tuple
>>> def myfunc(*args):
... for args1 in args:
... yield args1*10
...
>>>
>>> myfunc(10.1,20)
<generator object myfunc at 0x7f20d1ae8ad0>
>>>
>>> tuple(myfunc(10.1,20))
(101.0, 200)