鱼C论坛

 找回密码
 立即注册
查看: 1417|回复: 10

[已解决]新手求助(函数里的 *param 怎么用 input 让使用者自己输入的内容传递到 *param)

[复制链接]
发表于 2018-9-21 21:01:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问这么一个问题
函数里的 *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:16:25
  1. temp = input('输入数字:')
  2. mFun(*map(int, temp.split(',')))
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-21 21:10:47 | 显示全部楼层
本帖最后由 塔利班 于 2018-9-21 21:13 编辑

Input传入的是字符串,你的字符串几个数字以什么来间隔,需要拆分
结果相当于传入的只是一个变量进去处理,除非你是类似这种玩字符操作
  1. def mFun(*param, base=3):
  2.     result = ''
  3.     for each in param:
  4.         result += each
  5.     result *= base
  6.     print('结果是:', result)
  7. mFun(input('输入字符'),base=5)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-21 21:16:25 | 显示全部楼层    本楼为最佳答案   
  1. temp = input('输入数字:')
  2. mFun(*map(int, temp.split(',')))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-21 21:38:29 | 显示全部楼层
本帖最后由 凌九霄 于 2018-9-21 21:43 编辑

还是楼上厉害,考虑了半天,也想了*的形式。就是没想到把那个直接放函数里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-21 21:51:00 | 显示全部楼层

*号在这里是什么意思啊,怎么可以直接解析map函数啊,还有其他的快速解析方法吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-21 22:03:50 | 显示全部楼层
RIXO 发表于 2018-9-21 21:51
*号在这里是什么意思啊,怎么可以直接解析map函数啊,还有其他的快速解析方法吗

*是解包,将map解成若干个数字作为mFun的参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 14:11:56 | 显示全部楼层
塔利班 发表于 2018-9-21 21:10
Input传入的是字符串,你的字符串几个数字以什么来间隔,需要拆分
结果相当于传入的只是一个变量进去处理 ...

谢谢帮忙,不过貌似无法达到效果。
原题的目的是:
计算打印所有参数的和乘以基数(base=3)的结果。

不过你说的貌似没有效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 14:20:22 | 显示全部楼层
kevinz007 发表于 2018-9-22 14:11
谢谢帮忙,不过貌似无法达到效果。
原题的目的是:
计算打印所有参数的和乘以基数(base=3)的结果。

恩,所以各路大神都是将其进行处理,不是一步传参的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 16:37:05 | 显示全部楼层

谢谢你的答案,有效,不过可否讲解的详细点,
*map(int, temp.split(',')))
具体是怎么传递的。我没有理解,split 和 * map 貌似我还没接触过,多谢了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-22 16:37:41 | 显示全部楼层
塔利班 发表于 2018-9-22 14:20
恩,所以各路大神都是将其进行处理,不是一步传参的

哦,明白了,就像三楼那位的传递过去的,谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-27 20:53:53 | 显示全部楼层

完全搞明白了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表