【基本】Pythonのif文について分かりやすく解説!

2022-08-12

Pocket

こんにちは、爽です。皆さん、いかがお過ごしでしょうか?

今回はPythonのif文について確認します。
Pythonに限らず他言語でもそうですが、if文はどのようなロジックを組む場合でもほぼ必須の構文となりますので、是非マスターしましょう!

■この記事の対象読者
・Pythonに興味がある方
・Pythonを学び始めてみたい方
・Pythonのif文の詳細について知りたい方

なお、私はPythonをAnacondaをインストールしてJupyterで実行しています。MacのAnacondaのインストール方法とJupyterの使い方は下記記事にまとめているので良かったらご参考ください。

それではどうぞ!

Pythonのif文の書き方

基本形

if文とは「もし○○だったら××してください」というように条件分岐をするときに使う構文です。
基本的にはifの後の条件がTrueであれば、if文の中身が実行され、Falseであれば実行されません。

Pythonでの具体的な書き方は、「if 条件式 :」と書き、次の行にインデント(tabキー)を加えて、条件に合致する場合に実行したい処理を書きます。

x = 18

#変数が18以上であるのでif文の中身が実行される
if x >= 18:
    print('adult')
#>adult

else句

「前段のif文の条件に当てはまらない場合全て」を表現するのがelse句です。
具体的な書き方は、前段のif文に連なる形で「else :」と書き、if文と同じように次の行にインデント(tabキー)を加えて、if文の条件に合致しない場合に実行したい処理を書きます。
下記のような使い方です。

x = 0

#if文の条件がFalseとなるのでelse句に処理が移る
if x >= 18:
    print('adult')
else :
    print('not adult')
>>not adult

elif句

elif句はif文を更に細かく分岐したい場合に使います。
具体的な書き方は、elseよりも上の行に「elif 条件式 :」と書き、if文と同じように次の行にインデント(tabキー)を加えて、if文の条件には合致しないが、elif文の条件に合致する場合に実行したい処理を書きます。
下記のような使い方です。

x = 10

#if文の条件がFalseとなるのでelif句に処理が移る
if x >= 18:
    print('adult')
elif 1 <= x < 18:
    print('young')
else :
    print('baby')
#>young

なお、elif句はいくつでも追加することが可能です。
また、if文は上から順番に判定され、最初に条件がTrueになる句で処理が実行さます。また、処理が実行されるとそこで処理が抜けます。

if文の入れ子

if文の中に入れ子でif文を書くことも可能です。

x = 18
sex = 'man'

if x >= 18:
    print('adult')
    if sex = 'man':
        print('man')
#>adult
#>man

Pythonの比較演算子と論理演算子

if文で条件を判定する場合に用いるものが比較演算子と論理演算子です。
他の言語と大体同じですが下記に列挙します。

a = 1
b = 1

#aとbは等しい
print(a == b)
#>True

a = 2
#aとbは異なる
print(a != b)
#>True

#aはbより大きい
print(a > b)
#>True

b = 3
#aはbより小さい
print(a < b)
#>True

a = 3
#aはb以上
print(a >= b)
#>True

a = 4
print(a >= b)
#>True

a = 3
#aはb以下
print(a <= b)
#>True

a = 2
print(a <= b)
#>True

#aもbも真であれば真
print(a > 0 and b > 0)
print(a < 0 and b > 0)
#>True
#>True

#aかbどちらかが真であれば真
print(a > 0 or b > 0)
print(a < 0 or b > 0)
#>True
#>True

inとnot

inはある変数の中にある変数の値が含まれているかどうかを調べたい場合に使います。
なお、あまり深く調べていませんが、inの前は基本的なデータ型(int,strなど)で、inの後はリスト型など基本的なデータ型にしないとTypeErrorになるので注意が必要です。

#in
x = 1
y = [1,2,3]

#yの中にxが含まれているかを調べる
if x in y:
    print('in')
#>in

#逆にするとエラー
if y in x:
    print('in')
# ---------------------------------------------------------------------------
# TypeError                                 Traceback (most recent call last)
# Input In [18], in <cell line: 11>()
#       7     print('in')
#       8 #>in
#       9 
#      10 #逆にするとエラー
# ---> 11 if y in x:
#      12     print('in')

# TypeError: argument of type 'int' is not iterable

notは条件の否定をしたいときに使います。

x = 4
y = [1,2,3]

if Not x in y:
    print('not in')
#>not in

また、notは数値の比較でも使えます。
ただし、数値の比較でnotを使うと直感的に分かりづらいので素直に比較演算子を使った方がいいです。

a = 1
b = 2

#aはbより大きくはない(つまりaはbより小さいという意味)、、が直感的に分かりづらい
not a > b
#>True

#素直に比較演算子を使った方が分かりやすい
a < b
#>True

notは主にboolean型(TrueとFalse)の判定をしたいときに用います。

#boolean型の判定
is_ok = True
if is_ok:
    print('ok')
#>ok

#notを使って判定
is_ok = False
if not is_ok:
    print('not ok')
#>not ok

boolean型の判定

inとnotの最後のところで触れましたが、if文では「if 真の状態、または偽の状態」のように記述することで処理の分岐を制御できます。

#boolean型の判定
is_ok = True
if is_ok:
    print('ok')
else:
    print('no')
#>ok

#空文字はfalseと判定され、else句に処理が遷移する
a = ''
if a:
    print('a')
else:
    print('空文字')
#>空文字

「真の状態」と「偽の状態」とは具体的にどのような状態かを下記にまとめてみました。

真の状態

True

0以外

0以外

変数に何かしらの値が入っている状態

偽の状態

False

0

0.0

変数が空の状態(リスト、タプル、辞書型、リスト型含む)

要はTrueの状態以外は全てFalseと覚えておいていただければ良いかと思います。

Noneの判定

Pythonでは何もない状態(SQLでいうNullの状態)のことをNoneと表現します。Noneの判定には「is」を用いて判定することが多いです。

is_None = None

#Noneかどうかを判定
if is_None is None:
    print('None')
#>None

参考資料

この記事はUdemyのPython+FlaskでのWebアプリケーション開発講座!!~0からFlaskをマスターしてSNSを作成する~という講座と現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルという2つの講座を参考にさせていただき、作成しました。

Python+FlaskでのWebアプリケーション開発講座!!~0からFlaskをマスターしてSNSを作成する~

Udemyより抜粋

当講座は最低限のWeb開発の知識を知っていることが前提とはなりますが、とにかくPythonの説明とFlask開発の為の説明が充実しているのでおすすめです。
28時間に及ぶ長丁場の講座にはなりますが、絶対に聞く価値がある講座です。
これをマスターすればPythonでどんなアプリケーションでも作ることができると思います。

当講座のおすすめポイントを以下にまとめておきます。

当講座のおすすめポイント

とにかく説明が充実している

Webアプリ開発におけるフレームワークがなぜ有益なのか知ることができる

セキュリティ対策、Ajaxなどの技術も知れる

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

画像に alt 属性が指定されていません。ファイル名: a1ee3d048d6aa860662b6f58c4aa167f-1024x328.png

当講座はPythonの基礎から応用まで幅広く学べる講座なのでおすすめです。
この講座の講師はとにかくPythonについての知識が豊富ですし、話も適度な速さで聞き取りやすいです。さすがのシリコンバレーです。
また、最後の方に機械学習で使うライブラリについても解説があるので、データサイエンス・AIについても多少知ることができます。

当講座のおすすめポイントを以下にまとめておきます。

当講座のおすすめポイント

シリコンバレーで働いているということもあり、講師のPythonの知識が豊富

話も適度な速さで聞き取りやすい

コードの意味だけでなく、それをどう応用するかまで解説してくれる

なお、Udemyについては以下の記事でまとめていますのでご参考ください。

まとめ

ということで、今回はPythonのif文について解説しました。
if文はどのようなロジックを組む場合にもほぼ必須の構文となりますのでぜひ押さえていただければと思います。
では、今回はここまでとさせていただきます。