Discuss / Python / 不用reduce确实很麻烦

不用reduce确实很麻烦

Topic source

def str(s):

try:

s1=s[:s.index('.')]

s2=s[s.index('.')+1:]

return te([a for a in map(char2num,s1)],'+')+te([b for b in map(char2num,s2)],'-')

except ValueError:

print('should float str')

def te(l,mode)

b=0

n=1

for a in l:

                if mode=='+':

                        b+=a*(10**(len(l)-n))

                else:

                        b+=a*(0.1**n)

                n+=1

        return b

 def char2num(s):

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

return digits[s]


  • 1

Reply