Django, обнаружение, является ли переменная числом
в функции в Django пользователь может отправить мне число или строку, и я хочу знать, получил ли я число или строку (Совет: число всегда будет целым числом между 1-6)
Я хочу знать, можно ли это обнаружить и как (с примером), так как число или строка, которые я получаю, скажут мне, что делать дальше.
3 ответов
вы можете попытаться преобразовать строку в число с помощью int()
, ловя исключение:
def isNum(data):
try:
int(data)
return True
except ValueError:
return False
возвращает True
только если строка может быть преобразована в целое число.
Я предполагаю, что ваш номер будет помещен в строку, т. е. "1 "или" 4 "или" 6 " - если это так, то есть несколько способов сделать это; вы можете использовать регулярное выражение, чтобы проверить, является ли это числом или нет, или вы можете запустить функцию, которая будет выглядеть примерно так
def isNumber(your_input_string):
return len(your_input_string) == 1 and your_input_string in "123456"
Так как число всегда будет между 1 и 6, это может быть только строка длины 1, и она должна содержаться в строке '123456', так как... ну, это разрешено числа.
редактировать:
Как указал Мартийн Питерс в комментариях ниже, это окольный способ сделать это; более простым решением было бы просто проверить, находится ли строка между " 1 " или "6".
def isNumber(your_input_string):
return len(your_input_string) == 1 and '1' <= your_input_string <= '6'