Phython

【Python】input関数とは?
使い方や応用例を徹底解説!

今回は、pythonで用いられる関数の一つであるinput関数についてその使い方をご紹介していこうと思います。

input関数は他の関数と異なり、ユーザーがキーボードを用いて入力したデータを受け取るような関数になっています。

少し特殊な関数なのですが、初心者の方でも理解できるように丁寧に説明しているので、安心して最後まで見ていってください。

また、pythonをまだインストールしていないといった方は以下の記事を参考にしてインストールしてみましょう。

この記事でわかること

  • input関数の使い方
  • input関数での数値の扱い方
  • チャットプログラムの作り方

 input関数について

まず初めに、input関数とはどのようなものなのかを実際のコードを用いて説明していこうと思います。

input関数とは?

input関数とは、冒頭でも述べた通りユーザーがキーボードを用いて入力したデータを受け取るような関数になっています。

よくinput関数の対比として挙げられるのがprint関数といったもので、これに関しては知っている人がほとんどだと思います。

print関数は出力を行う関数になっており、input関数は入力を行う関数になっているので、pythonを用いてプログラムを書く際には両方とも欠かせない知識です。
print関数について、よく知らないといった方は以下の記事を参考にしてみてください。

input関数の基本的な使い方

では、実際のコードを用いてinput関数の使い方を確認していきましょう。

<input>

a = input("Enter:")
print(a)

<output>

Enter:input
input

実際にコードを動かしてみるとわかると思うのですが、上記コードの<input>を実行するとまず初めに『Enter:』とだけ出力されて入力待ちの状態になると思います。
私は、PyCharmを用いてコードを書いているのですが、実行した際の画面は以下のような形になります。

左が自分でコードを打つためのウィンドウ、右が出力結果を表示するためのウィンドウですね。
ここで、『Enter:』の部分に自分の好きな文字を入力してEnterキーを押します。

そうすると、input関数によってキーボードで打った内容をパソコンが受け取るため、上記のようにprint(a)の部分の文が実行される形になっています。

このように、input関数を用いると自分の入力した文字列を使用してプログラムを組むことが出来ます。

ちなみに、私が使用しているのはpython用のエディターであるPyCharmと呼ばれるもので、pythonのコードを書く上で非常に有用なアプリケーションになっているので、興味のある方は以下の記事を参考にインストールしてみて下さい。

 input関数の様々な使い方

input関数の基本的な使い方を確認したところで、続いてはそんなinput関数の色々な使い方について確認していこうと思います。

input関数の型

<input>

a = input("a: ")
b = input("b: ")

print(a, type(a))
print(b, type(b))

<output>

a: input
b: 10

input <class 'str'>
10 <class 'str'>

実は、input関数によって入力された値はすべてstring型として保存されてしまいます。

例えば、上記コードのように、int型の変数を作成したくてbに10という値を代入します。
それでも、中身を見てみるとstring型になってしまうんですね。
これによって以下のような問題が発生します。

<input>

a = input("a: ")
b = input("b: ")

print(a + b)

<output>

a: 10
b: 20

1020

このように、数値として計算をしようとしても正しい計算結果が返ってこないんですね。
原因はもちろん、aやbがstring型として扱われているからです。
では、これを解決するためにどのようなコードを記述すればよいのでしょうか。

input関数で数値を扱う

<input>

a = input("a: ")
b = input("b: ")

num_a = int(a)
num_b = int(b)

print(num_a + num_b)

<output>

a: 10
b: 20

30

input関数を用いて数値を扱うには、上記コードのように無理やり入力された値をint型に変換してあげる必要があります。

『num_a = int(a)』『num_b = int(b)』といった感じですね。
これを行うことで、num_aやnum_bは数値として扱えるようになったので、これらを用いて演算を行うと正しい結果が返ってくると思います。

少し面倒くさいですが数値の扱い方もよく覚えておきましょう。

【応用例】チャットプログラム

では、input関数を用いて少し応用的なチャットプログラムを作っていこうと思います。

<input>

a = 1

while True:
    if a % 2 == 1:
        You = input("You: ")
        if You == "good night":
            break
    if a % 2 == 0:
        Tom = input("Tom: ")
        if Tom == "good night":
            break
    a += 1

<output>

You: Tom,I'm sleepy.
Tom: why?
You: I played video game for 10 hours yesterday.
Tom: Oh, you should sleep right now.
You: Thank you,Tom. I will go to bed.
Tom: good night

このような形で、一種のチャットツールのようなものが作れました。
まあ、全部自分で打ってるんですけど(笑)

軽くコードの説明をしておくと、まずwhile文によって4行目以降の処理を無限ループさせています。
また、その中を見ると『if a % 2 == 1』『if a % 2 == 0』といったコードがありますよね。
ここでは、aを2で割った時の余りが1になるか0になるかで入るif文を決定しています。
最初はaが1なので上の方のif文に入って、二週目はaが1プラスされて2になるので、下の方のif文に入るといった感じです。

これによって、YouとTomが交互に会話するといったプログラムを実現しています。
また、このままですとプログラムが永遠に続いてしまうので、プログラムを終了させるキーワードを決めました。
それが『good night』といったものです。
これを用いると、breakによってwhile文の中から抜けるので処理を終了させることが出来ます。

ちなみに、プログラム内に出てくるif文やwhile文ついて詳しく知りたいといった方は以下の記事を参考にしてみてください。

 まとめ

今回は、input関数についてその基本的な使い方や応用例まで紹介してきましたが、いかがだったでしょうか。

input関数は、ユーザーが打った入力内容をコード内で使用するといった少し変わった関数なのですが他の関数と異なる分、他の関数ではできない様々なことを行うことが出来ます。

本記事を通して、皆様の理解が少しでも深まっていれば幸いです。

-Phython
-,