このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】キーボードからの入力を取得するinput文

キーボードからの入力を取得するinput文

 Pythonのプログラムでは、ユーザからの入力を受け取るために組み込み関数である input() 関数を使用します。input() 関数は、キーボードから1行分の文字列を読み取り、その結果を文字列として返します。これにより、プログラムの実行時にユーザに動的な情報を入力してもらい、その入力値に基づいた処理を実行することが可能になります。
 ここでは、input() 関数の基本構文、プロンプトの表示方法、入力値を変数に格納する方法、そして条件分岐と組み合わせた実践例について、表を用いて詳しく解説していきます。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

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

1.1. input() 関数の構文と基本動作

 input() 関数は、キーボードからの入力を受け取り、その入力を文字列として返します。基本的な構文は以下の通りです。

result = input()

 また、引数としてプロンプト文字列を指定することで、ユーザに入力内容のヒントを与えることができます。

result = input("Enter your password: ")

解説

  • この場合、"Enter your password: " がプロンプトとして表示され、ユーザはその指示に従って入力します。
  • 入力された内容は文字列型で返され、変数 result に代入されます。

1.2. プロンプトの表示と入力値の取得

 プロンプトを使うことで、ユーザが何を入力すべきか分かりやすく指示できます。以下は、ユーザからパスワードを入力させ、その値を変数に格納する例です。

サンプルプログラム

password = input("Please enter the secret password: ")
print("You entered:", password)

解説

  • プロンプト "Please enter the secret password: " が表示され、ユーザはキーボードから入力を行います。
  • 入力された文字列は変数 password に格納され、その後の print 文で確認できます。

2.input() 関数と条件分岐の組み合わせ

2.1. 入力値を変数に格納して条件分岐を行う

 input() 関数で取得した文字列は、そのまま条件分岐(if文)で利用できます。以下の例では、ユーザからパスワードを入力させ、正しいパスワードが入力された場合に「Access granted!」と表示するプログラムを示します。

サンプルプログラム

# ユーザからパスワードを入力してもらう
password = input("Enter password: ")

# 入力値が正しいかどうかを条件分岐で判定する
if password == "OpenSesame":
    print("Access granted!")

実行結果

Enter password:  OpenSesame
Access granted!

解説

  • 変数 password にユーザからの入力が文字列として格納されます。
  • if 文で password"OpenSesame" を比較し、一致する場合のみ print("Access granted!") が実行されます。
  • 一致しなければ何も出力されず、プログラムはそのまま終了します。

2.2. 1行で記述する場合とインデントの重要性

 Pythonでは、if文の条件部分と実行部分を同じ行に記述することもできますが、複数行に分ける場合は必ずインデントを正しく設定する必要があります。以下に、1行で記述した例と標準的な多行記述の例を示します。

サンプルプログラム

# 1行で記述する場合(シンプルな条件分岐)
if password == "OpenSesame": print("Access granted!")

# 複数行に分けた標準的な記述
if password == "OpenSesame":
    print("Access granted!")
    print("Welcome to the secret area.")

実行結果

Access granted!
Access granted!
Welcome to the secret area.

解説

  • コロン : の後に続く文は、インデントされたブロックとしてif文の内部に含まれます。
  • インデントが正しく設定されていないと、Pythonは構文エラーを返すため、特に複数行のコードを書く際は注意が必要です。
  • 1行で記述する場合でも、可読性のためにインデントのルールを意識することが重要です。

下記の表は、input() 関数の使用方法とその構文の違いをまとめたものです。

操作内容コード例説明
基本的な入力取得result = input()ユーザから1行分の入力を文字列として受け取る
プロンプト付き入力取得result = input("Enter password: ")プロンプトを表示して入力を促す
変数への代入と確認password = input("Enter password: ")入力された文字列が変数に格納される
単一行のif文による条件分岐if password == "OpenSesame": print("Access granted!")条件がTrueの場合に1行で文を実行(可読性に注意)
複数行のif文(インデント必須)if password == "OpenSesame":\n print("Access granted!")条件分岐の内部は必ず同じインデントで記述する

まとめ

 キーボードからの入力を取得するinput() 関数は、ユーザに動的な情報を入力させ、その入力値に基づいたプログラムの動作を実現するための基本的なツールです。

  • 基本構文input() 関数は、キーボードから1行分の文字列を取得し、その値を返します。
  • プロンプトの利用:入力前にユーザに指示を与えるため、プロンプト文字列を指定することができます。
  • 条件分岐との組み合わせ: 取得した入力値をif文で評価することで、正しい入力に基づいた処理(例:パスワード認証)を実行できます。
  • 構文とインデント: Pythonでは、コロンとインデントが制御構造の正確な動作に直結するため、正しい書式でコードを記述することが重要です。

 これらの基本操作を理解することで、より複雑なユーザ入力処理や対話型プログラムの構築が可能となり、プログラムの柔軟性が大いに向上します。