鱼C论坛

 找回密码
 立即注册
查看: 2002|回复: 9

[已解决]关于input返回值的问题,想请假一下大佬

[复制链接]
发表于 2021-1-23 08:38:42 | 显示全部楼层 |阅读模式

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

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

x
def power(x,y):
    if y == 1:
        return x
    else:
        return x * power(x,y-1)
zhi,mi = map(int((input('请输入指数和幂:').split())))
result = power(zhi,mi)
print('%d的%d次幂为:%d' %(zhi,mi,result))
实际运行的话会报以下错误:
int() argument must be a string, a bytes-like object or a number, not 'list'
百度查了下加了map函数,但是还是会报返回错误,如果要改的话需要改哪里呢?想请问以下大家,谢谢

   
最佳答案
2021-1-23 09:27:38
map里你少打个逗号
def power(x,y):
    if y == 1:
        return x
    else:
        return x * power(x,y-1)
zhi,mi = map(int,(input('请输入指数和幂:').split()))
result = power(zhi,mi)
print('%d的%d次幂为:%d' %(zhi,mi,result))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-23 08:44:01 From FishC Mobile | 显示全部楼层
input接收的是字符串可以int强制转换
input.split则是返回列表,列表无法int强制转换
错误信息说的明明白白,难道你不看吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-23 09:14:19 | 显示全部楼层
wp231957 发表于 2021-1-23 08:44
input接收的是字符串可以int强制转换
input.split则是返回列表,列表无法int强制转换
错误信息说的明明白 ...

第一次为自己的英语水平感到难受
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-23 09:15:19 | 显示全部楼层
将input数据split之后得到的实际是一个列表,列表不能int,将
zhi,mi = map(int((input('请输入指数和幂:').split())))
改为
zhi,mi = [int(x) for x in input('请输入指数和幂:').split()]
就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-23 09:21:01 | 显示全部楼层
qq1151985918 发表于 2021-1-23 09:15
将input数据split之后得到的实际是一个列表,列表不能int,将改为就对了

好的,试了一下可以的,谢谢回复!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-23 09:21:34 | 显示全部楼层
君子好逑 发表于 2021-1-23 09:14
第一次为自己的英语水平感到难受

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

使用道具 举报

发表于 2021-1-23 09:27:38 | 显示全部楼层    本楼为最佳答案   
map里你少打个逗号
def power(x,y):
    if y == 1:
        return x
    else:
        return x * power(x,y-1)
zhi,mi = map(int,(input('请输入指数和幂:').split()))
result = power(zhi,mi)
print('%d的%d次幂为:%d' %(zhi,mi,result))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-23 09:31:46 | 显示全部楼层
逃兵 发表于 2021-1-23 09:27
map里你少打个逗号

欸。。。好像是喔!那map用括号括起来后面的代码就不能实现了,为什么嘞?我之前的思路就是这样子的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-23 09:37:36 | 显示全部楼层
小智1998 发表于 2021-1-23 09:31
欸。。。好像是喔!那map用括号括起来后面的代码就不能实现了,为什么嘞?我之前的思路就是这样子的

map() 会根据提供的函数对指定序列做映射。
map(function, iterable, ...)
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。


你对map函数还不够熟悉
map函数里面至少两个参数
你写的代码不加逗号直接扩起来相当于只放了一个参数int(list)
代码将int和列表连用引发错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-1-23 09:42:54 | 显示全部楼层
逃兵 发表于 2021-1-23 09:37
map() 会根据提供的函数对指定序列做映射。
map(function, iterable, ...)
第一个参数 function 以参数 ...

get到了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 17:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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