Discuss / Python / 交作业

交作业

Topic source
from functools import reduce
def str2float(s):
    num_str = '' #num_str记录数字(字符串格式)
    for i in range(len(s)):
        if s[i] == '.':
            p = i + 1 #p记录小数点的位置
        else:
            num_str = num_str + s[i]
    def char2num(s):
        digits = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
        return digits[s]
    num_int = reduce(lambda x, y: x *10 + y, map(char2num, num_str)) #num_int记录数字(整数格式)
    return num_int / 10 ** (len(s) - p)

  • 1

Reply