在Django的一个函数中,用户可以给我发一个数字或一个字符串,我想知道我是否收到了数字或字符串(提示:数字将始终是1-6之间的整数)
我想知道是否可以检测到这个以及如何(通过示例),因为我得到的数字或字符串将告诉我下一步该做什么。
答案 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'