微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > python:利用map和reduce编写一个str2float函数,把字符串.1转换成浮点数0.1

python:利用map和reduce编写一个str2float函数,把字符串.1转换成浮点数0.1

时间:10-02 整理:3721RD 点击:
#!/usr/bin/env python3# -*- coding: utf-8 -*-from functools import reduceCHAR_TO_FLOAT = {    '0': 0,    '1': 1,    '2': 2,    '3': 3,    '4': 4,    '5': 5,    '6': 6,    '7': 7,    '8': 8,    '9': 9,    '.': -1}def str2float(s):    nums = map(lambda ch: CHAR_TO_FLOAT[ch], s)    point = 0    def to_float(f, n):        nonlocal point        if n == -1:            point = 1            return f        if point == 0:            return f * 10 + n        else:            point = point * 10            return f + n / point    return reduce(to_float, nums, 0.0)print(str2float('.1'))

我怎么手算出来值是-90

这里计算得到的nums应该是含有-1,1两个值的,但是后续带入to_float第一次运算得到-9,然后-9和0.0带入to_float运算得到-90,求大神指点


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top