#先把字符串分成整数与小数两部分,然后在组合成一个新的整数,最后除以10的n次方,得到浮点数
from functools import reduce
def str2float(s):
i = s.find('.')#找出小数点在字符串中的下标位置
s1 = s[:i]#整数部分
s2 = s[i+1:]#小数部分。小数点占一个字符,所以从i+1开始计算
l = len(s)-len(s1)-1#计算有几位小数
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]
def mluad(x,y):
s = x*10+y
return s
a = reduce(mluad,list(map(char2num,s1)))
b = reduce(mluad,list(map(char2num,s2)))
return a+b/(10**l)
s = str(input())
print(str2float(s))
Sign in to make a reply
里昂tcxy
#先把字符串分成整数与小数两部分,然后在组合成一个新的整数,最后除以10的n次方,得到浮点数
from functools import reduce
def str2float(s):
i = s.find('.')#找出小数点在字符串中的下标位置
s1 = s[:i]#整数部分
s2 = s[i+1:]#小数部分。小数点占一个字符,所以从i+1开始计算
l = len(s)-len(s1)-1#计算有几位小数
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]
def mluad(x,y):
s = x*10+y
return s
a = reduce(mluad,list(map(char2num,s1)))
b = reduce(mluad,list(map(char2num,s2)))
return a+b/(10**l)
s = str(input())
print(str2float(s))