@quintbrut

Как определить тип данных из строки в python?

Если вводить разные типы данных в питоне с клавиатуры в произвольном порядке. Как сделать так чтобы введенная строка (str) превратилось в тот тип который оно является и записалось в соответствующую переменную? Допустим если есть строка (str) "58" как записать его в переменную count (int)?, но если эта строка будет иметь значение по типу "яблоко" записать ее в переменную name (str).
Я просто пока не могу в голове выстроить алгоритм понимания типов.
  • Вопрос задан
  • 3426 просмотров
Решения вопроса 1
Tomio
@Tomio
backend developer (python, php)
Ну вообще для этого есть встроенный модуль ast и его функция literal_eval.

import ast

str_number = '58'
print(ast.literal_eval(str_number))
# output: 58 - <type 'int'>

str_dict = '{"name": "vasya", "age": 30}'
print(type(ast.literal_eval(str_dict)))
# output: {"name": "vasya", "age": 30} - <type 'dict'>


Ну и т.д. в том же роде можете подставлять в виде строк остальные типы данных.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@o5a
Проверять на isdigit(), например так
s = '665.3'
x = int(s) if s.isdigit() else float(s) if s.replace('.', '').isdigit() else s

Или же пытаться сразу преобразовать в int/float через try..except.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы