新米エンジニアのプログラム記録

pythonプログラムの基礎を載せています。

【超入門】第3回:if文を使って分岐処理を使いこなそう

このページで学べること

  1. if関数を使った分岐処理について
  2. if関数を使う上での注意点について

目次

if関数とは

 if関数は、pythonを初める多くの人が最初に学ぶ関数の内の1つです。「もし〇〇なら、○○してください」というプログラムを書くことができるようになります。今までのプログラムは処理は決められた一つのことしかできなかったのに対して、この関数を使うことで状況に応じて処理を分岐させることができるようになります。
if文を理解できると、より複雑なプログラムを書けることができ自信が少しついてくると思いますので頑張りましょう。

if関数の使い方

 ここからは実際にif関数を使ってみましょう。下記のプログラムをコピーしてプログラムを実行してみてください。
<サンプルプログラム>

#①input関数を使って、キーボードから入力された内容を変数xに代入する。
x = input("アルファベットを入力してください:")

#if関数を使って、変数xに代入された内容によって処理を分岐させる
#②if関数:xにaが代入されていたら処理される。
if x=="a":
    print("aが入力されました")
#③elif関数:xにaが代入されておらず、bが入力されていたら処理される。
elif x=="b":
    print("bが入力されました")
#④else関数:xにaもbも代入されていないときに処理される。
else:
    print("a,b以外が入力されました")

 動作としては、①input関数を使って「x」の変数内にキーボードで入力した内容が保存されます。②その入力内容が、「a」であれば"aが入力されました"と出力されます。③「a」が入力されていない、かつ「b」が入力されていれば、"bが入力されました"と出力される処理となります。最後に④「a」「b」ともに入力されていないとき、"a,b以外が入力されました"と出力される処理となります。
☆print関数について復習したい方は過去のページを参照ください。
kpython.hatenablog.com
☆input関数について復習したい方は過去のページを参照ください。
kpython.hatenablog.com

次からは②、③、④のif関数に関する処理を詳しく見てみたいと思います。

if関数の書き方

 まずは、②のif x=="a"の行に着目してみてください。if関数の書き方は下記のようになります。
  if 条件式:
   if関数に属するプログラム
サンプルプログラムでは「x=="a"」の部分が条件式となります。条件式では、基本的に算数で習う等号(=)、不等号(<,>)が使用され、この条件式が正しいとき(プログラムではTrueといいます)は、if関数に属するプログラムが実行されます。条件式が正しくないとき(プログラムではFalseといいます)はif関数に属するプログラムは実行されないという処理になります。今回のプログラムでは、変数xの中身は"a"ですか?という条件式となります。

elif関数の書き方

 次は、③のelif x=="b":の行に着目してみてください。elif関数もif関数と書き方は同様です。
  elif 条件式:
   elif関数に属するプログラム
条件式の書き方や、条件式がTrueになった時の処理の流れは基本的にif関数と同様です。違うところは、最初のif文の条件式の影響を受けることです。今回のelif関数の条件式を日本語で書くと、「変数xの中身がa以外かつ変数xの中身がbですか?」となります。②のif関数の条件式がFalseかつelif関数の条件式を満たすかどうかとなりますので、覚えておいてください。

else関数の書き方

 最後に、④のif、elif関数と相対する関数として「else」があります。else関数の書き方は以下のようになります。
  else:
   else関数に属するプログラム
これはif関数、elif関数の条件式に何も当てはまらなかったときに実行されるものとなります。今回では、if関数で「aが入力されたとき」elif関数で「aが入力されておらず、bが入力されたとき」という条件式がありますので、そのすべてを満たさない「aもbも入力されていないとき」に処理されるものとなります。if,elif関数で必要だった、条件式はelse関数では必要ありません。なぜなら「if,elif関数の条件式に当てはまらない条件」がelse関数の条件となるからです。

条件式について

 if関数で使える条件式は以下の10種類ありますので、覚えておくと便利です。


if関数の注意点

if関数に属するプログラムの範囲について

if関数にするプログラムの範囲は、C言語では{}で表現されますが、Pythonの場合はインデントの位置(空白)で判断されます。

もしインデントをつけずに記入すると下記のような「Expected an indented block (pyflakes E)インデントの位置が間違ってますよ」とエラーが出されますので注意して下さい。(Spyderのエディターで記入時)

elif,else関数の使い方について

今回のサンプルプログラムでは、if,elif,else関数の3種類を使いましたが、状況に応じて①if関数のみ②if関数とelif関数③if関数とelse関数。という使い方も可能です。ですが、「elifまたはelse関数のみ」や「elif関数とelse関数」といった使い方はできません。なぜなら、2つともif関数が存在して初めて使えるものだからです。もし、違った使い方をした場合は、下記のような「Invalid syntax (pyflakes E)構文が間違ってますよ」とエラーが出ます。(Spyderのエディターで記入時)

最後に

 いかがだったでしょうか?今回はif関数の使い方と注意点についてまとめさせていただきました。この関数を使えることで、いままでプログラムが直線型だったのに対して、条件に応じてプログラムが分岐するようになるため、一気にレベルアップした気持ちになるかと思います。この関数も奥が深いので、ぜひいろいろ試してみてください。