Django,检测变量是否为数字

时间:2013-11-15 14:26:36

标签: python django string integer

在Django的一个函数中,用户可以给我发一个数字或一个字符串,我想知道我是否收到了数字或字符串(提示:数字将始终是1-6之间的整数)

我想知道是否可以检测到这个以及如何(通过示例),因为我得到的数字或字符串将告诉我下一步该做什么。

3 个答案:

答案 0 :(得分:7)

您可以尝试使用int()将字符串转换为数字,以捕获异常:

def isNum(data):
    try:
        int(data)
        return True
    except ValueError:
        return False

仅当字符串可以转换为整数时才会返回True

答案 1 :(得分:3)

怎么样:if isinstance(data, int):

答案 2 :(得分:1)

我假设你的号码仍然被包裹在一个字符串中,即。 “1”或“4”或“6” - 如果是这种情况,那么有几种方法可以做到;你可以使用正则表达式检查它是否是一个数字,或者你可以敲一个看起来像这样的函数

def isNumber(your_input_string):
    return len(your_input_string) == 1 and your_input_string in "123456"

由于数字始终在1到6之间,因此它只能是长度为1的字符串,并且必须包含在字符串“123456”中,因为......好吧,这些是允许的数字。

修改

正如Martijn Pieters在下面的评论中指出的那样,这是一种迂回的做法;一个更简单的解决方案就是检查字符串是否在“1”或“6”之间。

def isNumber(your_input_string):
    return len(your_input_string) == 1 and '1' <= your_input_string <= '6'