Discuss / Python / 看很多大佬使用到了许多没有讲解的函数,个人小白写了一个依靠前面所学知识写的。

看很多大佬使用到了许多没有讲解的函数,个人小白写了一个依靠前面所学知识写的。

Topic source
index = 0
    leng = len(s)
    for i,v in enumerate(s): #enumerate 前面有讲解,可以在迭代的时候获取到下标
       if v == '.':
          index = i
    s = s[:index] + s[index+1:] #拆除小数点,然后前后拼接
    DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
    def char2num(s):
        return DIGITS[s]
    def fn(x,y):
        return x * 10 + y 
    return 0.1**(leng-1-index) * reduce(fn,map(char2num,s)) #0.1**(len-1-index) 表示小数点的位数,将整体值缩小到小数点位数倍数

整体思路:先取得小数点在整个字符串中的位置,然后根据小数点的位置对字符串进行拆分后,将前后两部分拼接。然后通过str2int 的方式转换成整数后在缩小到小数点位数倍数。


  • 1

Reply