Discuss / Python / 通过三个例题学到很多方法

通过三个例题学到很多方法

Topic source

第一题简便的话可以直接用title()函数来实现。 第二题简单不做重复。 第三题我的方法如下: from functools import reduce def str2float(s): def fix(x,y): return x10+y def str2num(n): return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[n] a,b=s.split('.') return reduce(fix,map(str2num,a))+reduce(fix,map(str2num,b))/(10*len(b)) print(str2float('123.456'))

fix函数返回是10*x+y str2float函数返回处最后是/(10**len(b)) 直接复制过来,没有修改。。。

CrazyBullet

#3 Created at ... [Delete] [Delete and Lock User]

方法简单很好!但是感觉没有考虑到一些特殊情形,例如‘0’、‘.123’等不含小数点或个别畸形情况。还需要优化

嗯,确实需要再优化一下特殊的情况。感谢指出问题


  • 1

Reply