raw_input
が整数かどうかを確認するために使用できる方法はありますか?
私はウェブで調査した後にこの方法を見つけました:
print isinstance(raw_input("number: ")), int)
しかし、実行して4
などを入力すると、FALSE
が得られます。私はpythonに慣れていないので、助けていただければ幸いです。
_raw_input
_は結果として文字列オブジェクトを返すため、isinstance(raw_input("number: ")), int)
は常に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 [〜#〜]2番目のものは、_-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'),
`
def checker():
inputt = raw_input("how many u want to check?")
try:
return int(inputt)
except ValueError:
print "Error!, pls enter int!"
return checker()
このメソッド.isdigit()を試してください。以下の例を参照してください。
user_input = raw_input()
if user_input.isdigit():
print "That is a number."
else:
print "That is not a number."
さらに使用するために入力を数字のままにする必要がある場合は、次のようなものを追加できます。
new_variable = int(user_input)