为了账号安全,请及时绑定邮箱和手机立即绑定

请教大神一个问题!

DIGITS={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}


def str2int(s):

def fn(x,y):

return x*10+y

def char2num(s):

print(DIGITS[s])

return DIGITS[s]


return reduce(fn,map(char2num,s))


print(str2int('123'))


#print(DIGITS['123'])

输入s为一个字符串,在代码当中打印出来的是[1,2,3]这样一个list,但直接输入DIGITS['123]就无法输出,这是为什么呢?而且DIGITS作为字典,其中的key应该是0-9中单独的数字,如果直接输入123应该没有对应的值才对,为什么代码中能打印出list来呢?

正在回答

2 回答

至少啥缩进什么的 弄好吧 ;这样看的乱乱的 ,没有人想看的。

你这个是加了2个装饰器把,那调用的时候,你调用内部的函数,编译器就会认为没有定义,是这样的吧?

所以你只能调用str2int() 。 因为你实际上就写了1个函数呀

1 回复 有任何疑惑可以回复我~

代码没有格式 这么乱 怎么答?   字典直接用【】取不到值会报错的 可以用get

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255771    人
  • 解答问题       2946    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

请教大神一个问题!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信