Как насчет этого?
import string
def containsNumber(line):
res = False
try:
for val in line.split():
if (float(val.strip(string.punctuation))):
res = True
break
except ValueError, e:
pass
return res
print containsNumber('234.12 a22') # returns True
print containsNumber('234.12L a22') # returns False
print containsNumber('234.12, a22') # returns True