raw_input
が整数かどうかを確認するための方法はありますか?python 2.7でraw入力が整数かどうかを確認するにはどうすればよいですか?
print isinstance(raw_input("number: ")), int)
が、私は、たとえばそれと入力4
を実行したとき、私はFALSE
を得る:
私は、Webで研究した後、この方法を見つけました。 私はPythonには新しく、どんな助けもありがたいです。
raw_input
が整数かどうかを確認するための方法はありますか?python 2.7でraw入力が整数かどうかを確認するにはどうすればよいですか?
print isinstance(raw_input("number: ")), int)
が、私は、たとえばそれと入力4
を実行したとき、私はFALSE
を得る:
私は、Webで研究した後、この方法を見つけました。 私はPythonには新しく、どんな助けもありがたいです。
isinstance(raw_input("number: ")), int)
結果としてraw_input
が返されるため、常にFalse
が生成されます。
使用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()
NOTEもう一つは-4
ためFalse
が得られます。数字だけが必要な場合は、2番目の文字を使用します。
UPDATE J.F. Sebastianは、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'),
`
あなたの投稿を編集して、コードの回答だけで問題が解決する方法をOPに明確にするとは限りません。 – SuperBiasedMan
def checker():
inputt = raw_input("how many u want to check?")
try:
return int(inputt)
except ValueError:
print "Error!, pls enter int!"
return checker()
か、ありますnumber、 'number = int(number)' – SethMMorton
'str.isdigit()'はロケールによって異なる場合があります(Microsoftのため)、つまり 'int() 'でも入力に対してValueErrorが発生してもTrueを返す可能性があります。 – jfs
@ J.F.Sebastian、 'raw_input()'は 'unicode'オブジェクトではなく' str'オブジェクトを返します。だから私は 'str.isdigit'が期待通りに動くと思う。あなたは私に例を教えてください。 – falsetru