こんにちは私は、入力の内容に基づいて特定の変数タイプにユーザー入力を変換する方法があるのか不思議です(raw_input()を使用しています。これに対してより良い機能があれば)。私はraw_input()が常に文字列を作成することを知っていますが、入力が有効であれば文字列を整数または浮動小数点に変換することはできますか?たとえば、ユーザーが '1'を入力すると、その変数を文字列ではなく整数として格納する方法がありますか?ここで私は仕事を作るしようとしていたコードは次のとおりです。ユーザー入力が有効な場合に文字列をint/floatに変換する
print "Subtraction Calculator (x-y)"
def calculator(x, y):
if [isinstance(x, int) or isinstance(x, float)] and [isinstance(y, int) or
isinstance(y, float)]: #This should be checking to see if x and y are both
numerical
D = x - y
return D
else:
return "One or more inputs is not a number."
x = raw_input("x = ")
y = raw_input("y = ")
print calculator(x, y)
xとyが両方()をraw_inputによる文字列ですが、私は適切なエラーを取得していないようですと明らかにこのコードは動作しません。メッセージ(「1つ以上の入力が数字ではありません」)、代わりに(D = x-y)でエラーが発生しています。私はこれが私の「if」ステートメントが常にTrueとして登録されているためだと信じていますが、なぜこれもどちらかとはわかりません。
あなたはint型を使用してintに文字列を変更することができます()のx = INT(raw_input( のような方法を"x =")) –
'[isinstance(x、int)or isinstance(x、float)]'は空でないリストなので真です。 –