Pythonプログラムでキーボードから入力した値を受け取ることができる「input()」について解説します。
キーボードから入力した値を受け取る方法
「input()」を使用します。「input()」を記述したプログラムをコマンドプロンプトで実行すると入力の待ち受け状態となりキーボードから値を入力できます。入力した値はプログラムが受け取りプログラムの中で使用することができます。
変数 = input(“入力を促す説明文を記述する”)
または
変数 = input()
標準入力はキーボードからの入力のことです。標準出力はディスプレイ(モニタ)への表示のことです。
サンプルプログラム(ソースコード)
キーボードから入力した名前を受け取り表示するプログラムです。
# 名前の入力を促す説明文
name = input("好きな人の名前を入力してください:")
# 入力した名前を表示する
print("わたしは " + name + " さんが大好きです!")
文字列と文字列の連結(結合)については「Python入門 文字列と文字列を連結(結合)する」も参考にしてみてください。
サンプルプログラム(ソースコード)の保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_033.py
- エンコード:UTF-8
コマンドプロンプトでサンプルプログラム(ソースコード)を実行
実行すると、2行目のように入力の待ち受け状態となります。
(trial) C:\code\py310\venv\trial>python sample_code_033.py
好きな人の名前を入力してください:
キーボードから名前(織田信長)を入力するとプログラムが入力した名前を受け取り3行目のように入力した名前が表示されます。
(trial) C:\code\py310\venv\trial>python sample_code_033.py
好きな人の名前を入力してください:織田信長
わたしは 織田信長 さんが大好きです!
(trial) C:\code\py310\venv\trial>
input()で受け取る値のデータ型は文字列(str)
「input()」から受け取る値のデータ型は文字列(str)です。受け取った値は用途にあわせデータ型を変換して使用します。
サンプルプログラム(ソースコード)
「input()」で受け取った2つの値を合計するプログラムです。
# 攻撃力と防御力の入力を促す説明文
a = input("織田信長の攻撃力はいくつですか:")
b = input("織田信長の防御力はいくつですか:")
# 入力した値のデータ型を確認
print(type(a))
print(type(b))
# 入力した値を表示する
print("織田信長の攻撃力と防御力の合計は " + a + b + " です。")
# 入力した値のデータ型を整数に変換して計算する
# 計算結果のデータ型を文字列に変換して表示する
print("織田信長の攻撃力と防御力の合計は " + str(int(a) + int(b)) + " です。")
文字列から整数へのデータ型変換については「Python入門 文字列から数値にデータ型を変換する」も参考にしてみてください。
整数から文字列へのデータ型変換については「Python入門 数値から文字列にデータ型を変換する」も参考にしてみてください。
サンプルプログラム(ソースコード)の保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_034.py
- エンコード:UTF-8
コマンドプロンプトでサンプルプログラム(ソースコード)を実行
実行すると、入力待ち受け状態となり織田信長の攻撃力と防御力の入力を促されます。(実行結果の2行目と3行目)ここでは、攻撃力を「92」防御力を「96」と入力しました。
受け取った入力値のデータ型を確認すると、どちらも文字列(str)となっています。文字列のままサンプルプログラムの10行目のように「a + b」を実行すると、実行結果6行目のように「9296」と文字列の連結となってしまいます。
そこで、サンプルプログラム14行目のように変数 a と 変数 b を文字列(str)から整数(int)にデータ型変換して2つの値を計算しました。
「int(a) + int(b)」の計算結果(188)は整数(int)なので、計算結果のデータ型を文字列(str)に変換「str(int(a) + int(b))」して表示させています。(文字列に変換しないと TypeError となります)
(trial) C:\code\py310\venv\trial>python sample_code_034.py
織田信長の攻撃力はいくつですか:92
織田信長の防御力はいくつですか:96
<class 'str'>
<class 'str'>
織田信長の攻撃力と防御力の合計は 9296 です。
織田信長の攻撃力と防御力の合計は 188 です。
(trial) C:\code\py310\venv\trial>
まとめ
- キーボード入力の受け取りには「input()」を使用する
- 「input()」が実行されると「Enter」が入力されるまで入力待ち受け状態となる
- 「input()」から受け取る値のデータ型は文字列なので用途にあわせてデータ型を変換する