将字符串转换成浮点数,需要考虑输入字符串的有效性,然后通过float进行类型转换。以下是几种不同的实现方式:
1.通过正则表达式验证输入的有效性
m = re.match(r'[+-]?((/d+(/./d*)?)|(/./d+))', input) if m: f = float(input) else: print 'invalid input %s' %(input)
2.通过异常处理无效输入
try: f = float(input) except ValueError: print 'invalid input %s' %(input)
对于方法一,在处理大量数据时,正则表达式的效率很低,而且无法处理科学计数法表示的浮点数, 对于方法二,数据无效时,python内部对异常的处理会消耗一定的时间,数据量较小时,其所消耗的时间不见得比方法一少。
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
QQ咨询|关于我们|Archiver|手机版|小黑屋|( 辽ICP备15012455号-4 ) Powered by 期权论坛 X3.2 © 2001-2016 期权工具网&期权论坛 Inc.
下载期权论坛手机APP