Discuss / Python / 第三题显示有误

第三题显示有误

Topic source

无虑43793

#1 Created at ... [Delete] [Delete and Lock User]

digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9,'.':'.','-':'-'} from functools import reduce

def str2float(s): def fn(x,y):

    return x*10+y
def zb(m):
    return digits[m]
def ab(L):
    L=map(zb,L)
    a=[]
    b=[]
    c=''
    flag=True
    for ss in L:
        if ss=='-':
            c='-'
        elif ss=='.':
            flag=False
        elif flag:
            a.append(ss)
        else:
            b.append(ss)
    return a,b,c
l=ab(s)
if(l[-1]):
    return -(reduce(fn,l[0])+reduce(fn,l[1])*pow(10,-len(str(reduce(fn,l[1])))))
else:
    return reduce(fn,l[0])+reduce(fn,l[1])*pow(10,-len(str(reduce(fn,l[1]))))

  • 1

Reply