#利用map/reduce实现str到float的转换
from functools import reduce
def char2num(s):
dicts = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
return dicts[s]
def strToFloat(s):
if not isinstance(s,str):
raise TypeError('param type error')
else:
for i in range(len(s)):
if s[i]=='.':
n=i
break
s1=s[:n]
s2=s[n+1:]
a = reduce(lambda x,y:x*10+y,map(char2num,s1))
b = reduce(lambda x,y:x*10+y,map(char2num,s2))/pow(10,(len(s)-n-1))
return a+b
print(strToFloat('164234.641212'))
#闭包函数实现计数器
def counter():
li=[0]
def coun():
li.append(li[-1]+1)
return li[-1]
return coun
s = counter()
print(s(),s(),s())
Python 小练习-----
最新推荐文章于 2021-11-21 15:57:35 发布