Pythonでユーザー入力を簡単マスター!input()関数の使い方を徹底解説

プログラミング

Pythonでプログラムを作成する際に、ユーザーに何かを入力してもらいたい、ということはよくありますよね。例えば、名前を入力してもらって「こんにちは、〇〇さん!」と表示したり、計算に使う数値を入力してもらったり。

そんなときに活躍するのが、Pythonのinput()関数です。

この記事では、Python初心者の方でもinput()関数の基本的な使い方から、取得したデータの扱い方、さらには応用的な使い方まで、分かりやすく丁寧に解説します。この記事を読めば、あなたもユーザーと対話できるプログラムを簡単に作れるようになりますよ!

スポンサーリンク

Python input()関数とは?

input()関数は、Pythonプログラムの実行中にユーザーがキーボードからテキストを入力し、その入力をプログラムが受け取るために使用されます。つまり、プログラムとユーザーがコミュニケーションを取るための架け橋となる関数です。

例えば、あなたが作ったクイズプログラムでユーザーに答えを入力してもらったり、電卓プログラムで計算したい数値を入力してもらったりする際に、このinput()関数が必要になります。

input()関数の基本的な使い方

input()関数の使い方は非常にシンプルです。基本的な書式は以下のようになります。

Python

変数名 = input()

このように書くと、プログラムはその行で一時停止し、ユーザーが何かを入力してEnterキーを押すのを待ちます。ユーザーが入力した内容は、指定した変数に格納されます。

実際に試してみましょう。

Python

# ユーザーからの入力を受け取り、変数 name に格納
name = input()

# 格納した変数 name の内容を表示
print("入力された名前:", name)

このコードを実行すると、カーソルが点滅した状態で入力待ちになります。例えばここで「Taro」と入力してEnterキーを押すと、以下のように表示されます。

Taro
入力された名前: Taro

このように、ユーザーが入力した「Taro」という文字列がnameという変数に格納され、print()関数で表示されているのが分かります。

スポンサーリンク

プロンプトメッセージを表示する

先ほどの例では、何を入力すれば良いのか分かりませんでしたね。input()関数は、ユーザーに何を入力してほしいのかを促すためのメッセージ(プロンプト)を表示させることができます。

プロンプトを表示するには、input()関数の引数として表示したい文字列を指定します。

Python

変数名 = input("表示したいメッセージ")

例を見てみましょう。

Python

# ユーザーに名前の入力を促すメッセージを表示
name = input("あなたの名前を入力してください: ")

# 入力された名前を使って挨拶
print("こんにちは、" + name + "さん!")

このコードを実行すると、「あなたの名前を入力してください: 」というメッセージが表示され、その後で入力待ちになります。

あなたの名前を入力してください: Hanako
こんにちは、Hanakoさん!

このように、プロンプトメッセージを表示することで、ユーザーはプログラムが何を求めているのかを理解しやすくなります。分かりやすいプロンプトメッセージを表示することは、使いやすいプログラムを作る上で非常に重要です。

input()で取得した値は「文字列」になる(重要!)

ここで非常に重要なポイントがあります。input()関数を使ってユーザーから入力された値は、たとえ数字を入力したとしても、必ず「文字列(string)」型として扱われます

これはPythonのinput()関数の仕様です。例えば、年齢を入力してもらったつもりでも、それは数値の「30」ではなく、文字列の「”30″」としてプログラムは認識します。

確認してみましょう。

Python

age_input = input("あなたの年齢を入力してください: ")

# 入力された値とその型を表示
print("入力された値:", age_input)
print("入力された値の型:", type(age_input))

このコードを実行して「25」と入力すると、以下のようになります。

あなたの年齢を入力してください: 25
入力された値: 25
入力された値の型: <class 'str'>

「入力された値の型」が<class 'str'>、つまり文字列型になっているのが分かります。

もし、入力された値を数値として計算などに使いたい場合は、数値型に変換する必要があります。

スポンサーリンク

入力された値を数値として扱うには?(型変換)

入力された文字列を数値として扱うには、型変換(キャスト)を行います。よく使うのは、整数に変換するint()関数と、小数点数に変換するfloat()関数です。

整数(int型)に変換する

入力された文字列を整数として扱いたい場合は、int()関数を使います。

Python

age_str = input("あなたの年齢を入力してください: ")
age_int = int(age_str) # 文字列を整数に変換

print("来年のあなたの年齢は", age_int + 1, "歳です。")
print("変換後の値の型:", type(age_int))

このコードを実行して「30」と入力すると、以下のようになります。

あなたの年齢を入力してください: 30
来年のあなたの年齢は 31 歳です。
変換後の値の型: <class 'int'>

age_int + 1のように計算ができていること、そして型が<class 'int'>になっていることが分かります。

注意点: int()関数は、数字以外の文字列を変換しようとするとエラー(ValueError)になります。例えば「abc」と入力するとエラーでプログラムが停止してしまいます。これへの対応は後述します。

小数点数(float型)に変換する

入力された文字列を小数点数として扱いたい場合は、float()関数を使います。

Python

price_str = input("商品の価格を入力してください: ")
price_float = float(price_str) # 文字列を小数点数に変換

print("税込み価格 (10%):", price_float * 1.1)
print("変換後の値の型:", type(price_float))

このコードを実行して「1000」と入力すると、以下のようになります。

商品の価格を入力してください: 1000
税込み価格 (10%): 1100.0
変換後の値の型: <class 'float'>

小数点数として計算できていることが分かります。float()関数も、小数点数として解釈できない文字列に対してはエラーになります。

複数の入力を受け取るには?(応用)

1回のinput()関数で受け取れるのは1行の入力ですが、複数行の入力を受け取ったり、1行に入力された複数の値を区切り文字(スペースなど)で分割して受け取ることも可能です。

複数行の入力を受け取る

複数行の入力を受け取る場合は、input()関数を繰り返し実行します。あるいは、特定の入力(例えば「end」と入力されるまで)を受け付け続けるループ処理を使うのが一般的です。

Python

lines = [] # 入力された行を格納するリスト

print("複数行入力してください。(終了するには 'end' と入力)")

while True:
    line = input()
    if line == 'end':
        break # 'end' が入力されたらループを終了
    lines.append(line) # 入力された行をリストに追加

print("\n--- 入力された内容 ---")
for text in lines:
    print(text)

このコードは、「end」と入力されるまでユーザーからの入力を受け付け、入力された各行をリストに格納し、最後にまとめて表示します。

1行に入力された複数の値を分割して受け取る(split()関数)

ユーザーが1行にスペースなどで区切って複数の値を入力した場合、split()関数を使うことでそれらを分割してリストとして取得できます。

Python

# 例: 「Apple Orange Banana」と入力
fruits_input = input("好きな果物をスペース区切りで入力してください: ")

# スペースで分割してリストにする
fruits_list = fruits_input.split()

print("入力された果物:", fruits_list)

実行例:

好きな果物をスペース区切りで入力してください: Apple Orange Banana
入力された果物: ['Apple', 'Orange', 'Banana']

split()関数は、引数を指定しない場合、連続する空白文字(スペース、タブ、改行など)で文字列を分割します。特定の文字で分割したい場合は、その文字を引数に指定します(例: input_text.split(',')でカンマ区切り)。

分割した値を数値として扱う(map()関数と組み合わせる)

split()で分割した複数の文字列を、まとめて数値に変換したい場合は、map()関数を使うと便利です。map()関数は、リストなどの各要素に関数を適用します。

Python

# 例: 「10 20 30」と入力
numbers_input = input("3つの数字をスペース区切りで入力してください: ")

# スペースで分割し、各要素を整数に変換
numbers_list_str = numbers_input.split()
numbers_list_int = list(map(int, numbers_list_str)) # mapでint関数を適用し、listに変換

print("入力された数字:", numbers_list_int)
print("合計:", sum(numbers_list_int))

実行例:

3つの数字をスペース区切りで入力してください: 10 20 30
入力された数字: [10, 20, 30]
合計: 60

map(int, numbers_list_str)で、numbers_list_strの各要素(文字列)に対してint()関数が適用され、整数のリストが生成されます。list()で明示的にリストに変換しています。

input()関数を使う上での注意点

input()関数は非常に便利ですが、いくつか注意しておきたい点があります。

  • 常に文字列として取得される
    •  これは前述の通り最も重要な注意点です。数値として扱いたい場合は、必ず型変換を行ってください。
  • 型変換時のエラー
    •  int()float()で変換できない文字列が入力されると、ValueErrorというエラーが発生し、プログラムが停止してしまいます。ユーザーの入力は予期せぬものが多いので、実用的なプログラムではエラー処理(try-except構文など)を検討する必要があります。
  • 入力待ちになる
    •  input()関数が実行されると、ユーザーが入力してEnterを押すまでプログラムの実行が一時停止します。対話的なプログラムでは問題ありませんが、バックグラウンドで処理を行いたい場合などには向きません。

input()関数の活用例

input()関数を使うことで、様々な対話型プログラムを作成できます。

  • 簡単な自己紹介プログラム: 名前や出身地などを入力してもらい、それを表示する。
  • 簡単な計算プログラム: 2つの数値を入力してもらい、その合計や差などを計算して表示する。
  • 選択式のプログラム: ユーザーに選択肢(例: 1. 攻撃, 2. 防御)を入力してもらい、それに応じた処理を行う。

これらの例のように、input()関数はユーザーからの情報を受け取り、プログラムの動作を動的に変えるための基本的な機能となります。

スポンサーリンク

まとめ

この記事では、Pythonのinput()関数の使い方について詳しく解説しました。

  • input()関数は、ユーザーからのキーボード入力を受け取るために使われます。
  • 基本的な使い方は 変数名 = input() または 変数名 = input("プロンプトメッセージ") です。
  • input()で取得した値は、数字を入力しても必ず「文字列」になります。
  • 数値を計算などで使いたい場合は、int()float()関数で数値型に変換する必要があります。
  • 複数行の入力や、スペース区切りの複数の入力を受け取る方法(split(), map())も紹介しました。
  • 型変換時のエラーや入力待ちになる点に注意が必要です。

input()関数を使いこなせば、よりユーザーフレンドリーで対話的なプログラムを作成できるようになります。ぜひこの記事を参考に、色々なプログラムを作ってみてください!

スポンサーリンク

コメント

タイトルとURLをコピーしました