Pythonの組み込み関数 input(), raw_input() を使って標準入力を取得する方法について説明します。
input() で標準入力を取得する
input() は引数に標準出力時に表示する文字列を渡します。
1 |
input('文字列') |
input() の戻り値は Python 2.x 系と Python 3.x 系で異なります。
Python 2.x 系の場合は、ユーザーの入力した式の評価された値が返されるのに対して、Python 3.x 系は文字列として返されます。
1 2 |
x = input('> ') print(x) |
上のプログラムを実行すると「> 」が表示されますので、値を入力してください。
Python 2.x 系の場合
以下は「7 + 8」を入力した結果です。
1 2 |
> 7 + 8 15 |
input() では入力を式として評価されます。input() が入力として受け付けるのは、 Python コードとして有効な式のみです。それ以外はエラーになります。もしPython 2.x 系で Python 3.x 系の input() と同じ動作をさせたい場合は、raw_input() を使用してください。
Python 3.x 系の場合
こちらの場合は、入力した値が文字列としてそのまま返されます。
1 2 |
> 7 + 8 '7 + 8' |
raw_input() で標準入力を取得する
raw_input() は引数に標準出力時に表示する文字列を渡します。
1 |
raw_input('文字列') |
引数に標準出力に表示される文字列を渡します。戻り値はユーザーが入力した文字列を返します。raw_input() を使って2つの整数を入力し、足した結果を表示します。
1 2 3 4 |
y = raw_input('y: ') z = raw_input('z: ') x = int(y) + int(z) print(x) |
以下は上のプログラムを実行して「3」と「5」を入力した結果です。
1 2 3 |
y: 3 z: 5 8 |
int()で変換せずに入力した文字列を「+」で実行すると文字列の連結になるため8ではなく '35' が出力されてしまいます。