本記事では、pythonで用いられる文法の一つであるif文についてその使い方と、よく用いられる比較演算子と呼ばれているものまで一気に紹介していこうと思います。
if文はpython以外でも様々な言語で用いられる基本文法の一つで、プログラミングを学ぶ上で必須と言えるでしょう。
本記事を通してぜひ、if文への理解を深めてみてください。
ちなみに、本ブログでは初心者の方でも理解できるように丁寧に説明しているので、全くの初心者という方も安心してください。
また、pythonをまだインストールしていないといった方は以下の記事を参考にしてインストールしてみましょう。
この記事でわかること
- if文の使い方
- 比較演算子について
- if文の様々な使い方
- 多重if文の使い方
目次
if文について
まず、if文とはいったいどのようなものなのかを簡単に説明していこうと思います。
他の言語を学習したことがあり、すでに知っているという方も、pythonのif文では他の言語にはない気を付けなければならないポイントがあるのでよく確認しておきましょう。
if文とは?
if文とは、「もし、○○だったらAという処理を行うよ。もし△△だったらBという処理を行うよ。」といったある条件を満たしているかどうかで処理する内容を決める文法のことです。
よくこのように条件によって、処理する内容を決定することを条件分岐と言ってif文のことを条件分岐を行うための文法なんて言い方もします。
英語でもifって『もし』みたいな仮定の意味合いで出てきますよね。
なので少しイメージがつきやすいと思います。
では、さっそく実際のコードを用いてどのように使用されるのかを見ていきましょう。
if文の基本的な使い方
<input>
a = 10
if a > 0:
print("a is plus")
if a < 0:
print("a is minus")
<output>
a is plus
上記のコードでは、10という数値が入っている変数aがもし『a > 0』を満たすならば『print("a is plus")』を実行して、もし『a < 0』を満たすならば『print("a is minus")』を実行するといった処理を行っています。
今回、aは10で最初の方の条件を満たすので、『a is plus』と出力されていることになります。
【注意】インデントを意識しよう
<input>
a = 10
if a > 0:
print("a is plus")
if a < 0:
print("a is minus")
<output>
# エラー
IndentationError: expected an indented block
先ほどのコードと同じように見える上記のコードですが、実は実行しようとするとエラーになるんです。
その原因は、コード内の空白にあります。
pythonでは、どこからどこまでがそのif文の中身かをコンピュータが理解できるように、if文の中身の部分の前に一定数の空白を入れなければならないといったルールがあります。
以下のような感じです。
<input>
a = -5
if a > 0:
# ここからif文の中身
print("start")
print("a is plus")
print("finish")
# ここまで
print("out")
<output>
out
上記コードでは、『print("start")』から『print("finish")』までがif文の中身で、print("out")はif文の外といった判定になります。
もちろん理由としては、前の空白の数が揃ってないからですね。
また、この空白のことをインデントと呼んで、基本的に空白の数は4つというのが暗黙の了解で決まっています。
初めのうちは慣れないかもしれませんが、徐々に慣れていきましょう。
if文で用いられる様々な演算子
続いては、if文で用いられる様々な演算子についてです。
演算子はif文を扱う上で必須になってくるのでよく確認しておきましょう。
ちなみに、紹介する演算子の種類は以下の二つです。
- 比較演算子
- 論理演算子
①:比較演算子
比較演算子は、二つの式や値を比べてその結果の真偽を返すような演算子です。
具体的にどのようなものがあるのかは、以下の表で確認してください。
演算子 | 説明 |
---|---|
a == b | aとbが等しい |
a != b | aとbが等しくない |
a > b | bよりaの方が大きい |
a < b | aよりbの方が大きい |
a >= b | aがb以上 |
a <= b | bがa以上 |
また、実際に比較演算子を使用しているコードを載せておくので興味のある方はご覧ください。
<input>
a, b, c = (1, 1, 3)
if a == b:
print("equal")
if a != c:
print("not equal")
if a < c:
print("a is smaller than c")
<output>
equal
not equal
a is smaller than c
②:論理演算子
論理演算子では、複数の条件式を組み合わせて一つの条件式を作成することが出来ます。
言葉のみだとイメージが湧かないと思うので、まずは具体的にどのようなものがあるかを表を用いて確認しましょう。
演算子 | 説明 |
---|---|
A and B | AとBの両方の条件を満たすならば真 |
A or B | AとBの少なくともどちらか一方が条件を満たすならば真 |
not A | Aが条件を満たさないならば真 |
また、実際に論理演算子を使用しているコードを載せておくので興味のある方はご覧ください。
<input>
a, b, c = (1, 1, 3)
if a == b and b < c:
print("OK")
if a == b or a == c:
print("good")
if not a > 3:
print("great")
<output>
OK
good
great
if文の様々な使い方
では、最後にif文の様々な使い方についてご紹介していこうと思います。
どれもよく使う文法なのですべて覚えてしまいましょう。
else:条件を満たさない場合の処理
<input>
a = -5
if a > 0:
print("a is plus")
else:
print("a is minus")
<output>
a is minus
elseは、if文の条件を満たさないようなときに処理を行いたい場合に記述します。
『もし○○ならば処理Aを実行。そうでなければ処理Bを実行』のBの部分をelseの中に記述するといった感じですね。
elif:他の条件を満たす際の処理
<input>
a = 0
if a > 0:
print("a is plus")
elif a == 0:
print("a is zero")
else:
print("a is minus")
<output>
a is zero
elifは『else if』の省略形です。
つまり、上記コードは『もし○○ならば処理Aを実行。そうでなくてもし△△ならば処理Bを実行。そうでなければ処理Cを実行』といった感じで処理を行っています。
ちなみに、elifは複数書くことができて、最初に条件が当てはまったもののみが実行されます。
上から条件に当てはまるかどうかを確かめていってどの条件にも当てはまらなかったものが、else内の処理を行うといった感じですね。
in:リストの中に指定の要素があるか
<input>
a = [1, 2, 3]
b = 1
if b in a:
print("b exist in a")
<output>
b exist in a
『in』を用いることで、リストの中に指定の要素がある場合は、if文の中に入るといった処理も書くことが出来ます。
もちろん、リストではなくタプルや集合でも同じようなことが出来ます。
if文の多重構造
<input>
a = 10
b = 10
if a > 0:
print("a is plus")
if b > 0:
print("b is plus")
<output>
a is plus
b is plus
このように、if文の中にさらにif文を入れることも可能です。
この際、インデントが少し複雑になるので注意しましょう。
notの使い方
<input>
a = 1
b = 2
# notを使ったif文
if not a == b:
print("not equal")
# notを使っていないif文
if a != b:
print("not equal")
<output>
not equal
not equal
『not』は先ほどの論理演算子の部分でも少し紹介しましたが、後ろにある式が偽の時に真を返すといった処理を行います。
なので、上記コードのように『not a == b』と記述すると、aとbが等しくないときにif文の中身を実行するよといった意味になります。
しかし、正直こんな感じでnotを使うよりも『a != b』と書いた方がわかりやすいですよね。
実は、比較演算子を用いた条件式の前にnotを置くことはあまりおすすめできません。
では、どのように使用するのが適切なのでしょうか。
<input>
a = False
if a:
print("True")
if not a:
print("False")
<output>
False
pythonでは、ifの後に『ブール型の変数』を置くとその真偽によってif文の中身を実行するかどうかが決まります。
変数が真(True)ならばif文の中身を実行、偽(False)ならば実行しないといった感じですね。
しかし、これでは変数が偽(False)だった場合にある処理を行うといった命令が出来ません。
そのため、前にnotをつけて変数を否定することで可能にします。
上記コードの例では、aという偽(False)の変数の前にnotをつけてif文の中身を実行してますね。
こういった形で使用されることが多いので覚えておきましょう。
まとめ
今回は、if文についてその意味と様々な使い方を紹介してきましたがいかがだったでしょうか。
if文は冒頭でも述べた通り、さまざまな言語で用いられている文法の一つで非常に汎用性が高いです。
本日紹介した機能をよく理解して自分でもif文を自在に操れるようになりましょう。