a = ['1231', '-1242', '-1242.1212', '--25.521.521', 'test']
def f(x):
check = list(map(str.isdigit, x.replace('-', '', 1).split('.', 1)))
if all(check):
if len(check) == 2:
return 'Float'
return 'Int'
for i in a:
print(f(i))
import ast
# первые 5 значений - корректные варианты написания чисел в python
input_data = ['5678', '-5', '665.89', '1_000_000', '-0.775', '0.78587.99', 'dfsdf']
def get_type(data):
try:
res = type(ast.literal_eval(data)).__name__
except:
res = 'error'
return res
print([get_type(x) for x in input_data])
# ['int', 'int', 'float', 'int', 'float', 'error', 'error']