def isNumeric(s):
has_sign = False
has_point = False
has_e = False
if len(s) == 0:
return False
for i in range(len(s)):
if s[i] == 'E' or s[i] == 'e':
if has_e:
return False
else:
has_e = True
if i == len(s) - 1:
return False
elif s[i] == '+' or s[i] == '-':
if has_sign:
if s[i-1] !='e' and s[i-1] != 'E':
return False
else:
has_sign = True
if i > 0 and s[i-1] != 'e' and s[i-1] != 'E':
return False
elif s[i] == '.':
if has_point or has_e:
return False
else:
has_point = True
if i > 0 and (s[i-1] == 'e' or s[i-1] == 'E'):
return False
else:
if s[i] not in "0123456789": #s[i] < '0' or s[i] > '9':
return False
return True
print(isNumeric('2.1e+1'))
20_表示数值的字符串
最新推荐文章于 2021-07-03 11:07:12 发布