Pythonのinput関数を初心者向けに解説!キーボード入力を受け取る基本
Pythonを学び始めると、最初はprint関数で文字を表示するところから入ることが多いです。
画面に「こんにちは」と表示できるようになると、次に気になるのが自分で入力した文字をPythonに受け取らせる方法ではないでしょうか。
そこで使うのが、Pythonのinput関数です。
input関数を使うと、キーボードから入力された文字をプログラムの中で扱えるようになります。名前を入力してあいさつしたり、年齢を入力して計算したり、簡単な診断ツールを作ったりできます。
ただ、初心者の方がinput関数を使うと、数字を入力したのに計算できない、Enterを押すまで止まっているように見える、入力した値がどこに入ったのかわからない、という疑問が出てきやすいです。
でも、安心してください。
input関数は、仕組みを一つずつ理解すればかなりシンプルです。この記事では、Python初心者向けにinput関数の基本、使い方、数値変換、よくあるエラー、実用例までわかりやすく解説します。
Pythonのinput関数とは?¶
まずは、input関数が何をするものなのかを整理しておきましょう。
input関数は、キーボードから入力された内容を受け取るための関数です。プログラムを実行すると入力待ちの状態になり、ユーザーが文字を入力してEnterキーを押すと、その内容をPython側で使えるようになります。
input関数の基本形¶
input関数の基本形はとてもシンプルです。
name = input()
print(name)
このコードを実行すると、Pythonはキーボード入力を待ちます。
たとえば、太郎と入力してEnterキーを押すと、変数nameに太郎という文字が入り、そのあとprint関数で太郎と表示されます。
ここで大切なのは、input関数で受け取った値は文字列として扱われるという点です。
数字の10を入力しても、Pythonの中では数値の10ではなく、文字としての10になります。この違いが重要です。
実際にinput関数を試してみたい方はこちらからどうぞ↓ 【ブラウザで実行できる】Pythonの標準入力(input関数)の使い方
入力前にメッセージを表示する¶
input関数では、入力してほしい内容をメッセージとして表示できます。
何も表示されないまま入力待ちになると、使う側は何を入力すればよいのかわかりませんよね。そこで、input関数のかっこの中に案内文を書きます。
name = input("名前を入力してください: ")
print(name + "さん、こんにちは")
このように書くと、実行時に名前を入力してください:と表示されます。
ユーザーは何を入力すればよいか判断しやすくなります。初心者のうちは、input関数を使うときは案内文を入れる習慣をつけるとよいです。
input関数の流れ¶
input関数の処理は、次のような流れで進みます。
| 順番 | 処理 | 内容 |
|---|---|---|
| 1 | メッセージを表示する | inputの中に書いた案内文が表示される |
| 2 | 入力を待つ | ユーザーがキーボードで入力するまで止まる |
| 3 | Enterキーで確定する | 入力内容がPythonに渡される |
| 4 | 文字列として受け取る | 変数に文字列として保存される |
| 5 | 後続処理で使う | printや計算などに利用する |
止まっているのではなく、ユーザーの入力を待っている状態です。Webサイトのフォームで名前を入力するまで次に進まないのと似ています。
input関数で文字を受け取る¶
まずは、文字を受け取る例から見ていきましょう。
input関数はもともと文字列を受け取る関数なので、名前や好きな食べ物、コメントのような文字情報を扱うときはそのまま使えます。
名前を入力してあいさつする¶
一番わかりやすい例は、名前を入力してあいさつするプログラムです。
name = input("あなたの名前を入力してください: ")
print(name + "さん、Pythonの学習を始めましょう!")
たとえば、花子と入力すると、次のように表示されます。
花子さん、Pythonの学習を始めましょう!
コードとしては短いですが、ここにはプログラミングの大切な考え方が詰まっています。
ユーザーから情報を受け取り、その情報を使って別の処理を行う。この流れは、アプリ開発でも業務自動化でもよく使われます。
f-stringと組み合わせる¶
文字をつなげるときは、+を使うこともできます。
ただ、Pythonではf-stringを使うと読みやすく書けます。特に変数が増えてきたときに便利です。
name = input("名前を入力してください: ")
hobby = input("趣味を入力してください: ")
print(f"{name}さんの趣味は{hobby}ですね。")
f-stringでは、文字列の前にfを付けて、変数を波かっこの中に書きます。
これだけで、文章の中に変数の値を埋め込めます。+で何度も文字列をつなげるより、かなり読みやすいです。
【関連記事】Pythonのf-stringとは?デバッグが驚くほど楽になる!
input関数で数字を受け取るときの注意点¶
ここからが、初心者がつまずきやすいポイントです。
input関数で数字を入力した場合でも、Pythonはその値を文字列として受け取ります。つまり、10と入力しても、それは数値の10ではなく、文字としての10です。
そのままだと計算できない¶
次のコードを見てみましょう。
age = input("年齢を入力してください: ")
next_age = age + 1
print(next_age)
一見すると、入力した年齢に1を足して、来年の年齢を表示できそうです。
でも、このコードはエラーになります。理由は、ageが文字列だからです。文字列に数値の1を足すことはできません。
int関数で整数に変換する¶
数字として計算したい場合は、input関数で受け取った値をint関数で整数に変換します。
age = input("年齢を入力してください: ")
age = int(age)
next_age = age + 1
print(f"来年は{next_age}歳ですね。")
これで、たとえば20と入力すると、来年は21歳ですね。と表示されます。
もう少し短く書くこともできます。
age = int(input("年齢を入力してください: "))
print(f"来年は{age + 1}歳ですね。")
この書き方はよく見ます。
ただし、初心者のうちは最初のように2行に分けて書いた方が理解しやすいです。まずinputで受け取る。次にintで変換する。この順番を意識しましょう。
float関数で小数に変換する¶
身長や体重のように小数を扱いたい場合は、float関数を使います。
height = float(input("身長をmで入力してください: "))
weight = float(input("体重をkgで入力してください: "))
bmi = weight / (height * height)
print(f"BMIは{bmi:.1f}です。")
たとえば、身長に1.7、体重に60と入力すると、BMIを計算できます。
:.1f と書くと、小数第1位まで表示できます。ここまでできると、簡単な計算ツールを作れるようになります。
input関数でよくあるエラー¶
input関数は簡単に使えますが、初心者がハマりやすいエラーもあります。
エラーが出ると焦りますよね。でも、エラーはPythonからのヒントです。何が起きているのかを読めるようになると、少しずつ自分で直せるようになります。
ValueErrorが出る¶
int関数やfloat関数で変換するときに、数字ではない文字を入力するとValueErrorが発生します。
age = int(input("年齢を入力してください: "))
print(age)
このコードで、20と入力すれば問題ありません。
しかし、二十やabcのように入力すると、Pythonは整数に変換できません。その結果、ValueErrorになります。
ValueError: invalid literal for int() with base 10
少し怖い表示に見えるかもしれません。
でも、意味としては整数に変換できない文字が入力された、ということです。
try-exceptでエラーに対応する¶
ユーザーが必ず正しい数字を入力するとは限りません。
そこで、try-exceptを使うと、変換できなかった場合に別のメッセージを表示できます。
try:
age = int(input("年齢を入力してください: "))
print(f"来年は{age + 1}歳ですね。")
except ValueError:
print("数字で入力してください。")
これなら、数字以外が入力されてもプログラムが突然止まりません。
エンジニア歴10年の経験から言うと、ユーザー入力を扱うときは、正しい入力だけを前提にしないことがとても大切です。実務では、空白だけ入力されたり、想定外の文字が入ったりすることが普通にあります。
【関連記事】PythonのSyntaxErrorとは?初心者がつまずく構文エラーの原因と対処法を徹底解説
空文字に注意する¶
input関数では、何も入力せずにEnterキーを押すこともできます。
この場合、空文字という空の文字列が返されます。
name = input("名前を入力してください: ")
if name == "":
print("名前が入力されていません。")
else:
print(f"{name}さん、こんにちは。")
空文字は、見た目には何もないように見えます。
でも、Pythonの中では空の文字列として存在しています。フォーム入力やアンケートのような処理では、この空文字チェックがとても重要になります。
input関数を使った実用例¶
基本がわかったところで、少し実用的な例を見ていきましょう。
入力を受け取り、条件分岐や計算と組み合わせると、簡単なツールを作れるようになります。
消費税込み価格を計算する¶
まずは、金額を入力して税込価格を計算する例です。
price = int(input("税抜価格を入力してください: "))
tax_rate = 0.10
total = int(price * (1 + tax_rate))
print(f"税込価格は{total}円です。")
たとえば、1000と入力すると、税込価格は1100円です。と表示されます。
こうした計算は、事務作業の自動化でもよく出てきます。Excelで毎回計算している処理を、Pythonで小さなツールにするイメージです。
点数を入力して合否判定する¶
次は、点数を入力して合格か不合格かを判定する例です。
score = int(input("点数を入力してください: "))
if score >= 60:
print("合格です。")
else:
print("不合格です。")
input関数とif文を組み合わせるだけで、ユーザーの入力に応じて処理を変えられます。ただ表示するだけのプログラムから一歩進んだ感じがしますよね。
簡単な診断プログラムを作る¶
もう少し遊びのある例も見てみましょう。
answer = input("朝型ですか?夜型ですか?: ")
if answer == "朝型":
print("朝の集中時間を活かして学習するとよさそうです。")
elif answer == "夜型":
print("夜の静かな時間にコツコツ進めるタイプですね。")
else:
print("朝型か夜型で入力してみてください。")
このように、入力された文字によって返すメッセージを変えることもできます。
ただし、文字列の比較では、入力ミスに注意が必要です。朝型と入力してほしいところで、朝や朝方と入力すると別の文字として扱われます。
input関数を使うときのコツ¶
ここまでの内容で、input関数の基本はかなり見えてきたと思います。
最後に、初心者がinput関数を使うときに意識したいコツを整理します。小さなことですが、これを意識するとコードが読みやすくなります。
案内文を具体的に書く¶
input関数の案内文は、できるだけ具体的に書きましょう。
age = int(input("入力してください: "))
これだと、何を入力すればよいのかわかりにくいです。
age = int(input("年齢を半角数字で入力してください: "))
このように書くと、使う側が迷いにくくなります。
未来の自分や他の人が使うこともあります。だからこそ、入力メッセージは丁寧に書いておくと親切です。
変数名をわかりやすくする¶
input関数で受け取った値は、変数に入れて使うことが多いです。
このとき、変数名がわかりにくいと、あとでコードを読んだときに何の値かわからなくなります。
x = input("名前を入力してください: ")
短いコードならこれでも動きます。
ただ、学習段階では次のように書いた方が理解しやすいです。
name = input("名前を入力してください: ")
変数名のわかりやすさはとても大切です。 実務では、コードを書く時間より読む時間の方が長いことも多いからです。
入力値を信じすぎない¶
ユーザー入力は、思った通りに入るとは限りません。
数字を入れてほしい場所に文字が入ることもあります。何も入力されないこともあります。全角数字が入ることもあります。
最初から全部に対応する必要はありません。
ただ、input関数で受け取った値は外から入ってくる情報なんだ、と意識しておくとよいです。外から入る情報には、必ず確認が必要になります。
まとめ¶
Pythonのinput関数は、キーボードから入力された内容を受け取るための関数です。
print関数が画面に表示するためのものなら、input関数はユーザーから情報を受け取るためのものです。この違いをまず押さえておきましょう。
input関数で受け取った値は、基本的に文字列として扱われます。
そのため、年齢や金額のように数値として計算したい場合は、int関数やfloat関数で変換する必要があります。ここは初心者がつまずきやすいポイントです。
また、ユーザーが必ず正しい値を入力するとは限りません。
数字以外が入力されることもありますし、何も入力されないこともあります。慣れてきたら、try-exceptや空文字チェックも使えるようになると安心です。
input関数は、とても小さな機能に見えるかもしれません。
でも、ユーザーから情報を受け取り、その情報に応じて処理を変えるという意味では、プログラミングの入口としてとても大切です。
まずは、名前を入力してあいさつするプログラムからで大丈夫です。
少しずつ、数値計算、条件分岐、簡単な診断ツールへと広げていきましょう。自分が入力した内容でプログラムの結果が変わる感覚をつかめると、Pythonの学習はもっと楽しくなります。
ここまでお読みいただきありがとうございました。