今回は、Pythonのinput関数の使い方についてご紹介します。
Pythonのinput関数とは
Pythonのinput関数は、キーボードから文字列を受け取るための組み込み関数です。
実行するとプログラムが入力待ち状態になり、ユーザーが入力しEnterキーを押すまで処理が進みません。
入力内容は常に文字列として取得されるため、数値計算を行う場合は型変換が必要です。
また、input関数の引数に文字列を渡すとプロンプト(入力を促すメッセージ)として表示されます。
input関数の基本的な使い方
ここでは、具体例を通してinput関数の使用方法を解説します。
コード例とあわせて、実行結果も確認してみてください。
単純に文字列を受け取る例
input関数で文字列を受け取り、そのまま表示するシンプルな例です。
1 2 |
name = input("あなたの名前を入力してください: ") print("こんにちは、" + name + "さん!") |
あなたの名前を入力してください: (ユーザーが入力)
こんにちは、〇〇さん!
上記の例では、入力内容がそのまま文字列として扱われます。
数値を入力し、型変換する例
input関数は文字列しか返さないため、数値計算を行う場合はintやfloatなどで型変換を行います。
1 2 3 |
age = int(input("あなたの年齢を入力してください: ")) next_age = age + 1 print("来年は" + str(next_age) + "歳になります。") |
あなたの年齢を入力してください: 20
来年は21歳になります。
この例では、int()で入力文字列を整数に変換した後に計算を行っています。
スペース区切りで複数の入力を受け取る例
一度に複数の値を受け取りたい場合は、split()を利用します。
1 2 3 4 |
data = input("名前と年齢をスペース区切りで入力してください: ").split() name = data[0] age = int(data[1]) print("こんにちは、" + name + "さん。あなたは" + str(age) + "歳です。") |
名前と年齢をスペース区切りで入力してください: Taro 30
こんにちは、Taroさん。あなたは30歳です。
split()を使うことで、入力された文字列をリストに分解し、それぞれを取り出して使用できます。
複数行の入力をリストに格納する例
あらかじめ入力回数が決まっている場合は、for文とinput関数を組み合わせることでリストにまとめられます。
1 2 |
lines = [input("行を入力してください: ") for _ in range(3)] print("入力された行:", lines) |
行を入力してください: ABC
行を入力してください: DEF
行を入力してください: GHI
入力された行: [‘ABC’, ‘DEF’, ‘GHI’]
このようにリスト内包表記を使うと、短いコードで複数行をまとめられます。
終了条件を決めて繰り返し入力を受け取る例
特定の文字を受け取ったら入力を終了するように設計する場合、whileループとbreak文を使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
total = 0 count = 0 while True: s = input("数字を入力してください(終了するには 'q' を入力): ") if s == 'q': break total += int(s) count += 1 if count > 0: average = total / count print("合計:", total, "平均:", average) else: print("入力がありませんでした。") |
数字を入力してください(終了するには ‘q’ を入力): 10
数字を入力してください(終了するには ‘q’ を入力): 5
数字を入力してください(終了するには ‘q’ を入力): q
合計: 15 平均: 7.5
このように、ユーザーが指定した終了条件に応じてループを抜ける仕組みを構築できます。
よくあるエラー・注意点
型変換でのエラーが最も多く、数値として処理できない文字をint()に渡した場合などにエラーが発生します。
たとえば文字列を数値に変換する際は、try-exceptブロックを用いて例外処理を行うことで、エラー時の対策を講じることが可能です。
また、ユーザーが余計な空白を入力する場合があるため、strip()で前後の空白を除去すると安全です。
split()の引数を省略したときは空白文字(スペースやタブ)で分割されます。区切り文字がカンマなどの場合はsplit(‘,’)と指定してください。
入力回数が不定の場合は、終了条件を用意するか、あらかじめ入力回数を聞いてからループを回すなどの方法を選択します。
まとめ
input関数はインタラクティブなプログラムを作る上で欠かせない機能です。
常に文字列として値を取得する点を意識し、必要に応じて型変換や例外処理を行うことが大切です。
さまざまな活用方法を試しながら、効率的なプログラムを作成してみてください。