Python 小練習-----

#利用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())
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章