以下哪项是检查字符串是否可以表示为数字的最佳方式?
A)
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
b)中
Import re
check_regexp = re.compile(“^\d*\.?\d*$”)
c)中
def isNumber(token):
for char in token:
if not char in string.digits: return false
return True
d)
import re
check_replace = lambda x: x.replace(‘.’,’’,1).isdigit()
答案 0 :(得分:2)
所有四个版本都做不同的事情。由于第一个版本是唯一一个正确处理底片的版本,我几乎在所有情况下都更喜欢它。即使调整其他版本以返回与第一个版本相同的值,我也希望第一个版本更清晰。但是,如果输入格式需要比float
接受的更严格,可能不允许输入'123e+4'
,那么正确编写的正则表达式可能是最简单的解决方案。
答案 1 :(得分:0)
你可以使用这个Python代码,它会发现字符串是数字或浮点值。
def typeofvalue(text):
try:
int(text)
return 'int'
except ValueError:
pass
try:
float(text)
return 'float'
except ValueError:
pass
return 'str'
typeofvalue("1773171")