今回はPythonのinput関数について解説します。input関数はユーザーがキーボードに入力したデータを受け付ける関数です。このinput関数を使うことによって、対話的なプログラムを作ることができます。
この記事では、
- input関数とは
- input関数の使い方
について解説します。さらに、
- input関数で入力された数値の扱い方
- 簡単なCLIアプリの作成
を通してより実用的な動作の流れを解説します!
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
input関数とは
これから学ぶinput関数とはどういった機能を持つのか、見ていきましょう!
input関数の基本
input関数とは、ユーザーがキーボードに入力したデータを受け付けるための関数です。よく使うprint関数は標準出力として用意されているのに対して、input関数は標準入力として用意されています。
標準入力、標準出力とはそれぞれのプログラミング言語で用意されているシステムでプログラムを書くときには欠かせないシステムになります。print関数については、こちらの記事をご覧ください。
raw_input関数との違い
Python2系では、raw_input関数と、input関数が用意されていました。しかしPython3系では、input関数のみになりました。Python2系のraw_input関数と、Python3系のinput関数には違いがなく、どちらも入力されたデータを文字列として返します。
しかし、Python2系のinput関数は、与えられたデータを式として計算をします。なので、まとめるとこのようになります。
# Python2系のraw_input関数 x = raw_input() print(x) # このコードを実行するとキーボード入力を求められます。 # 例えば、1 + 2と入力すると、以下のようにprintされます。 '1 + 2' # Python2系のinput関数 y = input() print(y) # このコードを実行するとキーボード入力を求められます。 # 例えば、1 + 2と入力すると、以下のようにprintされます。 3 # Python3系のinput関数 z = input() print(z) # このコードを実行するとキーボード入力を求められます。 # 例えば、1 + 2と入力すると、以下のようにprintされます。 '1 + 2'
与えたデータを文字列として扱いたいのか、数値として扱いたいのかを明確にしましょう!
input関数の使い方
ここからは実際にinput関数を使ってみましょう。実行はIPythonを使って対話的にしていきます。ぜひ一緒に実行しながら読み進めて行きましょう!
input関数をつかってみよう
まずはこちらのサンプルコードをご覧ください。
In [1]: x = input("Please Enter Number: ") Please Enter Number: 100 In [2]: print(x) 100
xにinput関数で入力を受け付けた数値を代入して、print関数で表示しています。とても単純な関数だということがわかると思います。しかし、ここで気をつけなければならない点があります。
input関数の引数の文字列に含まれる改行は、自動的に無視されるという点です。また、input関数が実行されているときに入力した文字列についても、改行コードは自動的に無視されます。
input関数の中で数値を扱おう
冒頭に触れたように、input関数は入力されたデータを文字列として扱います。しかし、入力されたデータをもとに計算を行う場合は、入力した数値を数値として扱ってほしい場合もあると思います。そのようなときにはint関数とfloat関数を使うことができます。
intやfloatって型じゃなかったの?と思う方もいるかもしれません。少しややこしいのですが、同じ名前で関数としても機能するのがこのint関数とfloat関数になります。Pythonにはこのような関数がたくさんあることも、覚えておきましょう。
ここでサンプルコードを見てみましょう。※以下のコードはIPython上で実行しています。In [~]と書かれた行がコードです。
In [3]: num1 = input("input num1: ") input num1: 10 In [4]: print(num1) 10 In [5]: num2 = input("input num2: ") input num2: 20 In [6]: print(num2) 20 In [7]: num1 = int(num1) In [8]: num2 = int(num2) In [9]: ans = num1 + num2 In [10]: print(ans) 30
2つの数字を入力し、足し合わせたものを表示するだけのプログラムです。少々長いサンプルコードですが、難しい処理はしていません。num1とnum2に数字を入力して、それをその都度表示して確認しています。
そしてnum1とnum2をint関数を使って文字列から数字にしています。数字になった入力済みのデータをansに代入して足し合わせて、足し合わせたものを最終的に表示しています。ちなみに、Pythonのコンソールでinput関数を使用したときの挙動はこのようになります。
input関数を使ったCLIアプリを作ってみよう
ここからは実際にinput関数を使って簡単なアプリを作ってみましょう。CLIとは、コマンドラインインタフェース(Command Line Interface)の略です。
普段使っているGUI(Graphical User Interface)の環境とは違い、文字の入力だけですべての操作を行う環境のことです。WindowsであればコマンドプロンプトかPowerShell、MacであればターミナルがCLIにあたります。今回はこのようなサンプルコードを作ってみました。
while True: ans = input("You: ") if ans == "q": break print(ans)
こちらのサンプルコードをcli.pyという名前で保存して、実行してみましょう。実行は、cli.pyの保存場所にコマンドで行き、
python cli.py
というコマンドを入力すると実行されます。この、サンプルコードの解説をします。while文の中にinput関数が入っています。while文については、こちらの記事をご覧ください。
while文の横のTrueは常にTrueなので、このままでは無限ループをし続けます。そこで、入力された文字列が「q」である場合、breakが発動してループを抜けます。このwhile文にif文で様々な命令や条件を追加していくと、より対話的なプログラムを作ることができます。
このままPythonを学び続けて大丈夫?
なぜPythonを学ぶのか?
あなたがPythonを学ぶ理由は何でしょうか?
- Pythonが人気だからとりあえず学んでいる
- AIや機械学習の分野に興味があるから
Pythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。
しかし、もしあなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。
機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。ただなんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも…。
そのため、挫折しないためには、
- 機械学習に最適な学習環境を用意する
- 必要なライブラリ・ツールを導入する
- わからないことを質問できるメンターを見つける
などが必要になります。
効率よく学びたいなら、無料カウンセリングがおすすめ
まだまだ知りたいことがたくさんある!
もっと詳しくPythonについて知りたい!
といった悩みや願望を持っている方は、弊社「侍エンジニア」をご利用下さい。
侍エンジニアでは、
- 現役エンジニアによるマンツーマンレッスン
- キャリアアドバイザーによる転職・就職支援
- 業界屈指のフリーランス・起業サポート
を受けることができます。
業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。
侍エンジニア無料カウンセリングを受ける
まとめ
input関数の簡単な使い方について解説してきました。文字列から数字に変換をする方法はinput関数を使うときだけではなく、他の場面でもよく使われるので覚えておきましょう。
そして最後に作ったCLIアプリですが、ここに様々な機能を追加していくことで、より立派なプログラムが出来上がります。これからPythonを学習していく方は、学習していった内容を機能として追加していくと面白いかもしれません。
input関数以外でも、現在Pythonを勉強中の方は以下の記事もお読みください。
Pythonでできること、勉強法などもまとめています。
【Python入門完全攻略ガイド】