【Python入門】input関数の使い方完全ガイド!基本から複数行入力・エラー対策まで

Python Input サムネイル

こんにちは!株式会社キカガクの中島です!

本記事では、input の基本から応用までを初心者向けに解説します。
動かして理解できるようサンプルコードも用意しましたので、ぜひ手を動かしながら読み進めてください。

記事内のサンプルコードはすべて Python 3.12 で動作確認済みです。

キカガク_中島

Python を業務で活用されている方だけでなく、プログラミング学習をしている方にもおすすめの内容となっていますのでぜひ最後までご覧ください!

input 関数とは?

Python で対話式のプログラムを書くうえで欠かせないのが input 関数です。

input() はキーボードから文字列を受け取り、常に文字列型(str で返します。ユーザーが Enter キーを押すまでプログラムは待機するので、対話的な CLI(コマンドラインインターフェース)を作る際に必須の関数となっています。

たとえば電卓や TODO 管理ツールなど、ユーザーの入力をもとに処理を変えるプログラムはinput() が土台となっていることが多いです。

input関数の基本的な使い方

ユーザーへの指示メッセージ表示

入力を促すメッセージをユーザーに表示することで、ユーザーは何を入力すれば良いか直感的に理解できます。

Python
name = input('お名前を入力してください: ')
print(f'こんにちは、{name} さん!')

input() は改行コードを含まないシンプルな文字列を返すため、そのまま print() で表示するとユーザーの入力がそのまま出力されます。

数値や他のデータ型として扱う方法

input() を使う上で、文字列として受け取った値を数値などに変換して使うのが実務では必須となります。
以下の 2 パターンを押さえておきましょう。

int() / float() で型変換

Python
age = int(input('年齢を入力してください: '))
print(age, type(age))  # 例: 25 <class 'int'>

例外処理で安全に変換

Python
def try_int(prompt: str, default: int = 0) -> int:
    try:
        return int(input(prompt))
    except ValueError:
        print('数値を入力してください!')
        return default

ValueError を捕まえることで、ユーザーが文字列を入力してもプログラムが強制終了しないようにできます。エラー処理は「プログラムの優しさ」と覚えておくと良いでしょう。

複数値・複数行入力テクニック

一度に複数の値を受け取りたい場面は多いものです。
split() を組み合わせると、区切り文字ごとに分割してリスト化できます。

カンマ区切りで複数値を取得

Python
x, y, z = input('x, y, z をカンマ区切りで入力してください: ').split(',')
print(x, y, z)

可変長の入力をまとめて取得

Python
print('好きなフルーツを入力してください(空行で終了)')
fruits = list(iter(input, ''))  # 空文字が入力されたら終了
print('入力されたフルーツ:', fruits)

iter(input, '') というイディオムを使うと、空行 1 回で終了するループを簡潔に書けます。

Python 2 と Python 3 の違い

Python 2 系では raw_input()input() が別々に存在し、input() は危険な「式評価」を行う関数でした。Python 3 では raw_input() が廃止され、安全な input() だけが残った ので「Python 3 なら input() を使って OK」と覚えておくのがおすすめです!

バージョン主な入力関数挙動
Python 2raw_input()文字列として取得
Python 2input()eval() 相当で式評価(危険)
Python 3input()文字列として取得

input() を使った簡易 CLI アプリを作ろう

CLI アプリとは、Command Line Interface(コマンドラインインターフェース)で動作するアプリケーションです。

ここまでの内容を組み合わせて、エコー(入力をそのまま返す)チャットを作成してみましょう。

Python
def echo():
    print('チャットを開始します。終了するには q を入力してください。')
    while True:
        msg = input('あなた: ')
        if msg.lower() == 'q':
            print('終了します。')
            break
        print(f'Bot: {msg}')

if __name__ == '__main__':
    echo()

こちらのコードで行っていることとしては大まかに以下の3つです。

  • ループで連続入力を受け取り
  • 小文字化して q と比較することで終了判定
  • 入力をそのまま返して会話風に表示

たった数行でチャットツールの基礎となる、簡易的な CLI アプリが完成しますね!

さらに学習を深めたい方へ

input() はプログラムとユーザーをつなぐ入り口となる機能です。次のステップとして、アプリケーション開発のさらにもう一段踏み込んだ部分である ファイル入出力Web API の活用に挑戦してみましょう。

キカガクでは現場で使える Python から機械学習まで体系的に学べる DX を推進する AI・データサイエンス人材育成コース を提供しています。無料相談も可能ですので、お気軽にご検討ください!

学習について無料で相談してみませんか?

独学で悩まれている方へ。理想のキャリアをヒアリングし、カウンセラーが最適な学習方法を一緒に考えます。希望者には講義を無料で体感できるセミナーもご案内!

よくあるエラーとデバッグのコツ

ValueError(型変換失敗)

数値変換で文字列を渡すと発生します。try…except で再入力を促しましょう。

EOFError(予期せぬ終了)

Ctrl + D(macOS/Linux)や Ctrl + Z(Windows)などの OS の機能で入力を終了すると発生します。例外処理でメッセージを出力するとよいでしょう。

Python
try:
    data = input('データを入力してください: ')
except EOFError:
    print('入力がキャンセルされました')

まとめ

以下にinput() を使う際に抑えておきたいポイントをまとめました。

  • input() は文字列を取得するシンプルな関数。
  • 数値扱いには型変換+例外処理が必須。
  • split()iter() を組み合わせれば複数入力も楽々。
  • Python 2 系列との違いに注意。
  • 小さな CLI アプリ作成から実践力を付けよう!

これらを覚えておくとしっかり活用できるようになるでしょう。

Python を土台に機械学習・生成 AI まで身に付け、企業の DX をリードできる人材を目指しませんか?
キカガクの DX を推進する AI・データサイエンス人材育成コース なら、現場で求められるスキルを体系的に習得できます。
無料相談はこちらから👇️

学習について無料で相談してみませんか?

独学で悩まれている方へ。理想のキャリアをヒアリングし、カウンセラーが最適な学習方法を一緒に考えます。希望者には講義を無料で体感できるセミナーもご案内!