raw_input
aが整数かどうかを確認するために使用できる方法はありますか?
Webで調査した後、この方法を見つけました:
print isinstance(raw_input("number: ")), int)
しかし、それを実行して入力すると4
、たとえばFALSE
. 私はpythonが初めてなので、助けていただければ幸いです。
raw_input
aが整数かどうかを確認するために使用できる方法はありますか?
Webで調査した後、この方法を見つけました:
print isinstance(raw_input("number: ")), int)
しかし、それを実行して入力すると4
、たとえばFALSE
. 私はpythonが初めてなので、助けていただければ幸いです。
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()
注2 番目のものは、数字以外の文字が含まれているため、False
forになります。-4
数字のみが必要な場合は、2 番目のものを使用します。
更新JF Sebastian が指摘したように、str.isdigit
ロケールに依存します (Windows)。入力に対して 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'
ここに私の解決策があります
`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'),
`