有没有一种方法可以检查araw_input是否为整数?
raw_input
我在网上研究后发现了这种方法:
print isinstance(raw_input("number: ")), int)
但是当我运行它并输入4例如时,我得到了FALSE。我是python的新手,将不胜感激。
4
FALSE
isinstance(raw_input("number: ")), int)总是产生,False因为raw_input返回字符串对象。
isinstance(raw_input("number: ")), int)
False
用途try: int(...) ... except ValueError:
try: int(...) ... except ValueError
number = raw_input("number: ") try: int(number) except ValueError: print False else: print True
或使用str.isdigit:
str.isdigit
print raw_input("number: ").isdigit()
注意 第二个之所以产生False,-4是因为它包含非数字字符。如果只需要数字,请使用第二个数字。
-4
UPDATE 作为JF塞巴斯蒂安指出,str.isdigit语言环境相关(Windows)中。它可能返回,True甚至int()会引发输入的ValueError。
True
int()
>>> import locale >>> locale.getpreferredencoding() 'cp1252' >>> '\xb2'.isdigit() # SUPERSCRIPT TWO False >>> locale.setlocale(locale.LC_ALL, 'Danish') 'Danish_Denmark.1252' >>> '\xb2'.isdigit() True >>> int('\xb2') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '\xb2'