新手求助(函数里的 *param 怎么用 input 让使用者自己输入的内容传递到 *param)
请问这么一个问题函数里的 *param 怎么用 input 让使用者自己输入的内容传递到 *param 里。
如小甲鱼的下面这个答案:
def mFun(*param, base=3):
result = 0
for each in param:
result += each
result *= base
print('结果是:', result)
mFun(1, 2, 3, 4, 5, base=5)
如何从 外部去利用 inpu() 来把1-5 这些数字输入到 *param这个多个变量里。
试了各种办法,网上也没查到方法,特来求助,谢谢。 本帖最后由 塔利班 于 2018-9-21 21:13 编辑
Input传入的是字符串,你的字符串几个数字以什么来间隔,需要拆分
结果相当于传入的只是一个变量进去处理,除非你是类似这种玩字符操作
def mFun(*param, base=3):
result = ''
for each in param:
result += each
result *= base
print('结果是:', result)
mFun(input('输入字符'),base=5) temp = input('输入数字:')
mFun(*map(int, temp.split(','))) 本帖最后由 凌九霄 于 2018-9-21 21:43 编辑
还是楼上厉害,考虑了半天,也想了*的形式。就是没想到把那个直接放函数里 冬雪雪冬 发表于 2018-9-21 21:16
*号在这里是什么意思啊,怎么可以直接解析map函数啊,还有其他的快速解析方法吗 RIXO 发表于 2018-9-21 21:51
*号在这里是什么意思啊,怎么可以直接解析map函数啊,还有其他的快速解析方法吗
*是解包,将map解成若干个数字作为mFun的参数 塔利班 发表于 2018-9-21 21:10
Input传入的是字符串,你的字符串几个数字以什么来间隔,需要拆分
结果相当于传入的只是一个变量进去处理 ...
谢谢帮忙,不过貌似无法达到效果。
原题的目的是:
计算打印所有参数的和乘以基数(base=3)的结果。
不过你说的貌似没有效果。 kevinz007 发表于 2018-9-22 14:11
谢谢帮忙,不过貌似无法达到效果。
原题的目的是:
计算打印所有参数的和乘以基数(base=3)的结果。
恩,所以各路大神都是将其进行处理,不是一步传参的 冬雪雪冬 发表于 2018-9-21 21:16
谢谢你的答案,有效,不过可否讲解的详细点,
*map(int, temp.split(',')))
具体是怎么传递的。我没有理解,split 和 * map 貌似我还没接触过,多谢了。 塔利班 发表于 2018-9-22 14:20
恩,所以各路大神都是将其进行处理,不是一步传参的
哦,明白了,就像三楼那位的传递过去的,谢谢了 冬雪雪冬 发表于 2018-9-21 21:16
完全搞明白了,谢谢
页:
[1]