@pecenuska2135

Как в питоне реализовать определение типа переменной как числа?

Есть 2 переменные типа string полученный из инпута. Нужно определить какая из них целочисленная, какая с плавающей точкой.
  • Вопрос задан
  • 272 просмотра
Решения вопроса 4
yupiter7575
@yupiter7575
Python программист
a = '1234'
b = '1.2343'
a.isdigit() #true
b.isdigit() #false
Ответ написан
vabka
@vabka
Токсичный шарпист
str = "123"
number = float(str)
if number.is_integer():
  number = int(number)
Ответ написан
Комментировать
MinTnt
@MinTnt
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))
Ответ написан
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
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']
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы