キーボード入力の読み取り
多くのプログラムは対話型です。 対話型をサポートするということは、プログラムは入力内容に応じて異なる方法で実行されることを意味します。 プログラムにデータを入力するのは通常はユーザーですが、別のプログラムによって入力されることもあります。 プログラムに入力を送信する方法はたくさんありますが、グラフィカル インターフェイスまたはコンソールを使用する 2 つの方法が一般的です。
ユーザー入力
キーボードからの入力を読み取るために、Python では input()
関数が提供されます。 input()
では、ユーザーがキーボードで入力した内容を読み取り、それを文字列として返します。 input()
と print()
を組み合わせて人物の名前をキャプチャし、それを画面上に表示する例を以下に示します。
name = input('Enter your name:')
print(name)
input
関数に引数として渡される文字列は、ユーザーに表示されるプロンプトです。 この例では、ユーザーに自分の名前を入力するよう求めます ('Enter your name')。 ユーザーが名前を入力し、Enter キーを押すと、input
関数から値が返されます。 関数の戻り値は、ユーザーが入力したテキストであり、そのテキストは name
という名前の変数に割り当てられます。 その後、name
変数は、ユーザーが入力した名前を出力する、print
関数に対する入力または引数として使用されます。
パラメーターを指定せずに、input
関数を呼び出すこともできます。
print('What is your name?')
name = input()
print(name)
このプログラムの動作は、最初のものとほぼ 同じです。 違いは、print
で (既定で) 出力に改行が追加されることです。
入力としての数値の読み取り
input
関数では常に、文字列 (テキスト) として型指定された値が返されます。 ユーザーは任意の値を入力できるため、この選択は当然のことです。 入力が有効な数値である場合でも、input
関数からは引き続き、文字列型として返されます。 次に例を示します。
x = input('Enter a number: ')
print(type(x))
このコードを実行し、値 '5' を入力すると、値自体が数値であっても、<class 'str'>
が表示されます。 値を真の整数変数に変換するには、int()
関数を使用できます。
x = int(input('Enter a number: '))
print(type(x))
このコードでは、値 '5' に対して <class 'int'>
が出力されます。 小数部が必要な場合、同じように float
関数を使用できます。
重要
入力が数値でない場合、それを int()
関数に渡すとどうなるでしょうか。 ご想像のとおり、これはエラーとなり、ランタイム エラーが発生します。 プログラムはこのステートメントで終了します。Python の対話型コンソールで自分で試すことができます。 今後のモジュールで、この種のエラーを処理するためのさまざまなソリューションについて説明します。
数値の文字列への変換
逆の方向からも進めることができます。 str()
メソッドでは、整数または浮動小数点値を受け取り、それを文字列にします。 次のコード例を使用する場合は、str()
メソッドを呼び出す必要があります。 変換により、文字列形式の整数が左側の文字列に確実に連結されます。
x = 5
print('The number is ' + str(x))