Discuss / Python / 作业3

作业3

Topic source

from functools import reduce

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

def str2float(s):

if (len(s)>0) and ('.' in s):

num1=reduce(str2Up,map(char2num,s[:s.find('.')]))

ss=s[::-1]

num2=reduce(str2Down,map(char2num,ss[:ss.find('.')]))

return num1+num2*0.1

def char2num(s):

return DIGITS[s]

def str2Up(x,y):

return x*10+y

def str2Down(x,y):

return x*0.1+y

print('str2float(\'123.456\') =', str2float('123.456'))


  • 1

Reply