作业3
Topic source思路就是用split把123.456切片,把字符串123赋值给s1(整数部分),字符串456给s2(小数部分)。
return reduce(f, map(char2num, s1)) + (reduce(f, map(char2num, s2))/pow(10,len(s2)))
reduce(f, map(char2num, s1))
把类型为str的S1转成类型为int的。
(reduce(f, map(char2num, s2))/pow(10,len(s2))
先进行类型转换,然后除以10的S2长度次方,这里len(s2)显然是3
整句话意思就是123+456/1000=123.456
最后2句是精髓,好好理解消化一下。
我也觉得这个想法好
from functools import reduce
def ks(s):
def f(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
def fn(x,y):
return 10*x+y
def fa(x,y):
return x/10+y
a=s.find('.')
b=int(a)
s1=s[:b]
s2=s[-1:b:-1]
return reduce(fn,map(f,s1))+reduce(fa,map(f,s2))/10
- 1
萌萌的小Karl