Discuss / Python / 第三题参考答案

第三题参考答案

Topic source

#实现的思想是先去掉小数点,然后将字符串转成整数,然后通过除法将小数点变回来 DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def findPointPosition(s1): #找出小数点的位置 n = 0 while(s[n] != '.'): n += 1 return n

def char2num(s2):
    return DIGITS[s2]

p = findPointPosition(s)
#求除数
i = len(s) - 1 - p;
j = 1
while(i != 0):
    j = j*10
    i = i - 1

s = s[:p] + s[p+1:]    #去掉字符串中的小数点
n1 = reduce(lambda x, y: x * 10 + y, map(char2num, s))
return float(n1) / j    #做除法,把小数点变回来

兄台,感觉你前面写的都是画蛇添足啊,你最后来个float方法是在惊讶到我了,你还不如直接使用float('123.456')直接了事


  • 1

Reply