KDP(Kindle Diect Publishing)による拙著『VBAユーザーのためのPython超入門』をお読みいただいた方の中には、input関数を使ったスクリプトを作成して、エラーが発生してしまう方がいらっしゃるかもしれません。
input関数の戻り値を使おうとしてエラーになるケース
例えば、input関数で入力された数値を使った計算を行う、以下のようなスクリプトを作ってみたものの、エラーになってしまった方がいるような気がしています。
num = input('2乗を計算したい整数を入力してください>>')
print(num ** 2)
上記のコードを実行すると、
「2乗を計算したい整数を入力してください>>」
とメッセージがShellウィンドウに表示され、何らかの数値を入力して実行すると、
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
となってしまうのです。
input関数の戻り値はstr型
これは拙著のchapter 5でも触れている、データ型の厳密さに関係するエラーです。
Pythonのinput関数の戻り値は文字列(str型)で、文字列を使って、べき乗などの数値演算はできないためです。数値演算を行うには型変換が必要です。
input関数の戻り値を数値演算に使うには型変換が必要
以下のように、int関数を使って型変換してやれば、エラーは発生しなくなります。
print(num ** 2)
先ほどのエラーとなるコードでは、
num = input('2乗を計算したい整数を入力してください>>')
となっていた部分が、
num = int(input('2乗を計算したい整数を入力してください>>'))
になっています。
input関数の戻り値がint関数の引数に指定されており、数字(文字列)が整数に変換されます。
- Newer:For Eachで行ごとに処理するには
- Older:pywin32を使ってPythonで起動済みWordを操作する
Home » 電子書籍 » VBAユーザーのためのPython超入門 » Pythonのinput関数の戻り値は文字列