Как проверить, является ли исходный ввод целочисленным в python 2.7?

Есть ли метод, который я могу использовать, чтобы проверить, является ли raw_input целое число?

Я нашел этот метод после исследования в Интернете:

 print isinstance(raw_input("number: ")), int) 

но когда я запускаю его и ввод 4 например, я получаю FALSE . Я немного новичок в python, любая помощь будет оценена.

4 Solutions collect form web for “Как проверить, является ли исходный ввод целочисленным в python 2.7?”

isinstance(raw_input("number: ")), int) всегда дает False потому что raw_input возвращает объект строки в результате.

Используйте try: int(...) ... except ValueError :

 number = raw_input("number: ") try: int(number) except ValueError: print False else: print True 

или используйте str.isdigit :

 print raw_input("number: ").isdigit() 

ПРИМЕЧАНИЕ . Второй дает False для -4 потому что он содержит символ без цифр. Используйте второй, если хотите только цифры.

ОБНОВЛЕНИЕ Как отметил Дж. Ф. Себастьян, str.isdigit зависит от локали (Windows). Он может возвращать True даже int() повысит ValueError для ввода.

 >>> 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' 

Вы можете сделать это следующим образом:

 try: val = int(raw_input("number: ")) except ValueError: # not an integer 

вот мое решение

 `x =raw_input('Enter a number or a word: ') y = x.isdigit() if (y == False): for i in range(len(x)): print('I'), else: for i in range(int(x)): print('I'), 

`

 def checker(): inputt = raw_input("how many u want to check?") try: return int(inputt) except ValueError: print "Error!, pls enter int!" return checker() 
Python - лучший язык программирования в мире.