入力が単語か数字かを確認しようとしています。
var = input("var: ")
if isinstance(var, str):
print "var = word"
else:
print "var = number"
これは私が思いついたコードですが、残念ながら機能しません。私はPythonとプログラミング全般に慣れていないので、多くのコマンドを知りません。何か提案をいただければ幸いです^^
入力が単語か数字かを確認しようとしています。
var = input("var: ")
if isinstance(var, str):
print "var = word"
else:
print "var = number"
これは私が思いついたコードですが、残念ながら機能しません。私はPythonとプログラミング全般に慣れていないので、多くのコマンドを知りません。何か提案をいただければ幸いです^^
input()
常に文字列(str
type )を返します。その文字列でできることはいくつかあります。int
その文字列をintにキャストしてみることができます:
var = input("var: ")
try:
var = int(var)
except ValueError:
print "var is a str"
print "var is an int"
正規表現を使用して、文字列に数字のみが含まれているかどうかを確認できます ( int
10 進数の場合、他の基数の場合は適切な記号を使用する必要があります)。
import re
var = input("var: ")
if re.match(r'^\d+$', var):
print "var is an int"
else:
print "var is a str"
input()
は、あなたの入力を受け取って評価してから、あなたに引き渡します。つまり、ユーザーが を入力するexit()
と、アプリケーションは終了します。これは、セキュリティの観点から望ましくありません。raw_input()
代わりに使用したいと思うでしょう。この場合、戻り値は文字列であると期待できます。
文字列の内容が (整数) 数値に変換可能かどうかを確認したい場合は、ここで説明する方法に従ってください。
簡単な概要: 数値に変換してみて、失敗するかどうかを確認してください。
例 (未テスト):
value = raw_input()
try:
int(value)
print "it's an integer number"
except ValueError:
print "it's a string"
参考のため:
関数のセマンティクスがinput()
Python 3 で変わることに注意してください。
変数の型を確認するには、次のようにします。
>>> x = 10
>>> type(x)
<type 'int'>
文字列の場合:
>>> y = "hi"
>>> type(y)
<type 'str'>
使用isinstance
:
x = raw_input("var: ")
try:
int(x)
except ValueError:
print "string"
else:
print "int"