将字符串转化为数字的python实现

将字符串转化为数字的python实现

将字符串转化为数字的python实现,例如将字符串“1234567.8”转化为 1234567.8

这也是学习python中的一个简单的练习题,代码如下:

# coding=UTF-8 将字符串转化为数字
from functools import reduce
import math
def char2int(s):
    return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
def mulit_int(x,y):
    return 10*x+y

def str2int(s):
    if s.find('.')==-1:#不是浮点数
        return reduce(mulit_int,map(char2int,s))
    else:#是浮点数
        s1=s.split('.')
        s2int=reduce(mulit_int,map(char2int,s1[0])) #整数部分

        s2float=reduce(mulit_int,map(char2int,s1[1]))*0.1**len(s1[1]) #小数部分
        return s2int+s2float

print(str2int("123345.678"))    

上面涉及到的知识点又python中内置的map()和reduce()函数的应用。

  • 其中map()函数要接收两个参数,第一个参数为函数,第二个参数为一个Iterable对象,map将传入的函数依次作用到序列的每个元素,结果以Iterable返回。

  • 而reduce()函数也接收两个参数,与map一样,但是reduce函数是把结果和序列中剩下的元素一起继续参与运算

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页