isFloat: Without Exception-Handling

Thomas Guettler pan-newsreader at thomas-guettler.de
Tue Sep 24 15:15:30 EDT 2002


On Fri, 20 Sep 2002 16:15:55 +0200, Mark McEahern wrote:

> [Magnus Lycka]
>> Something like this perhaps:
>>
>> import re
>>
>> def isFloat(S):
>>      floatRE = r"^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$" return
>>      re.match(floatRE, str(S)) is not None
>>
>> I'm not sure it's faster though.
> 
> If you were going to run this lots of times, you might want to compile
> the pattern.  Anyway, the exception based code is faster, by my testing
> (harness at bottom):
> 
>        isFloatExcept 0.220
>            isFloatRE 0.521
>    isFloatRECompiled 0.400

I thought exceptions are slow. But as 
someone mentioned, exception in python
seem to be different from exceptions in 
java or c++.

Thank you for the performance test!

 thomas



More information about the Python-list mailing list