如何检查变量是整数还是字符串?

use*_*354 34 python variables python-2.7

我有一个有几个命令的应用程序.当您键入某个命令时,您必须输入有关某事/某人的其他信息.现在信息必须严格地是整数或字符串,具体取决于具体情况.

但是,无论你使用raw_input()输入Python是什么,实际上都是一个字符串,无论如何,更具体地说,我怎么会很快和没有尝试...除了看看变量是由数字还是字符组成?

Mar*_*ers 71

在我看来,你有两个选择:

后者将无法检测到所有有效的int()值,如空白和+和-也是允许的int()值.第一种形式将乐意接受' +10 '为数字,后者则不然.

如果您希望用户通常输入整数,请使用第一个表单.在这种情况下,要求宽恕而不是许可更容易(也更快).


Teh*_*ris 20

如果你想检查它是什么:

>>>isinstance(1,str)
False
>>>isinstance('stuff',str)
True
>>>isinstance(1,int)
True
>>>isinstance('stuff',int)
False
Run Code Online (Sandbox Code Playgroud)

如果你想从raw_input获取整数

>>>x=raw_input('enter thing:')
enter thing: 3
>>>try: x = int(x)
   except: pass

>>>isinstance(x,int)
True
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说是完美的,它适用于正数和负数......很酷,谢谢 (2认同)

jwo*_*der 7

如果给定的字符串只是一个或多个数字isdigit,则该str类型的方法返回Trueiff.如果不是,您知道该字符串应该被视为一个字符串.

  • 对于负数,isdigit()retunrs为False (2认同)