Discuss / Python / 相对易懂

相对易懂

Topic source
    def str2int(s):
        digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
        def chr2int(c):
            return digits[c]

        return reduce(lambda x, y: x*10+y,  map(chr2int, s))
    # 小数点位置
    indexDot = s.index('.')
    
    # 拆分的小数点左边的字符串
    left = s[0:indexDot]
    # 拆分的小数点右边的字符串
    right = s[indexDot+1:]

    # 字符串转整数
    left = str2int(left)
    right = str2int(right)
    # 小数点的位数'1'+'000'再转整数,然后用1去除
    mul = str2int('1'+ reduce(lambda x,y: x+y,['0' for x in range(len(s)-indexDot-1)]))    

    return left+1/mul*right

  • 1

Reply