虽代码较复杂,但是逻辑比较简单。
#字符转为整数 def chr2num(x): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[x] #配合chr2num做成字符串转为整数 def zrs(a,b): return a*10+b #判断有无小数点,有的话计算位数(w),删除小数点 while s.find('.') != -1: #倒着数看小数点在第几位,就是小数位数(w) w = s[::-1].find('.') s = s.replace('.','') break else: w = 0 #有小数点,已经转为无小数点字符串,转为整数再除以(10的'小数点位数(w)'次方)就得到数字 while w != 0: return reduce(zrs,map(chr2num,s))/(10**w) #没有小数点,直接转为数字 else: return reduce(zrs,map(chr2num,s))
Sign in to make a reply
Dreamer_DK
虽代码较复杂,但是逻辑比较简单。