Pythonでのif文の書き方・条件分岐・else/notなどの書き方やその他注意点

コラムCOLUMN

Pythonでのif文の書き方・条件分岐・else/notなどの書き方やその他注意点

2021/03/03

プログラミングにおいて、条件によって次に実行するプログラムを分岐したい場合に使われるのがif文です。

if文を用いての条件分岐はプログラミングの基本ですが、プログラミング言語によって、その書き方には少しずつ違います。

ここでは、Pythonのif文の基本的な使い方について解説します。

他の言語との違いを意識しながら読んでみてください。

Pythonで条件分岐するには?

if文とは

if文とは条件分岐に使用される、プログラミング言語の構文です。

if else文と呼ばれることもあります。

if文には、条件式と処理を記述します。

条件式の条件を満たす場合、次に続く処理を実行します。

条件には基本的に真偽値(Ture/False)で表すことのできる変数のほか、条件式(値の比較や論理演算)などを使用します。

if文と一緒に用いられるelif節というものがあります。

if文の条件式が条件を満たさなかった場合、elif節があればelif節の判定を行います。

elif節も、if文と同様に条件式と処理を記述します。

elif節はいくつでも記述することができます。

最後に、else節というものも同時に用いられます。

if文とelif節の条件のどれにも合致しなかった場合、else節が記述されていればelse節の処理を実行します。

elif節とelse節は記述の必要がなければ省略できます。

その場合、if文の条件が満たされないときは、処理は実行されません。

TrueとFalse

条件が満たされている場合True(真)、満たされていない場合False(偽)を示す値を真偽値、またはブール値と言います。

真偽値は、変数のほか条件式でも表すことができます。

Pythonの場合、偽は必ずしも明示的にFalseである必要はありません。

例えば、None、数値の0、空文字列などもFalseと判定されます。

インデント

インデントとは、行頭に入れる空白のことです。

Pythonでは、インデントが非常に重要な役割を担っています。

同じ数の空白文字でインデントされた文のかたまりを一つのブロックと認識するためです。

if文では、条件部分(if、elif、else)をインデントなしで記述し、処理部分にインデントを入れて記述します。

インデントがそろっていない場合エラーとなります。

正しい例)

if 条件1:
 処理1
 処理2
 処理3

誤った例)

if 条件1:
 処理1
 処理2
 処理3

[実行結果]
IndentationError: expected an indented block

処理2のインデントがそろっていないため、IndentationErrorが発生します。

if文の基本の使い方

条件がTrueのとき、ブロック(行頭にインデントを入れた処理)に記述された処理を実行します。

a = 0
if a == 0:
 print(“aは0です。”)

print(“処理を終了します。”)

[実行結果]
aは0です。
処理を終了します。

上記の例では、条件がTrueのときに処理が行われます。

「==」は、条件式の右辺と左辺が等しければTrueを返す比較演算子(後述します)です。

print()は、画面にメッセージを表示する関数です。

条件がFalseの場合は、処理は行われません。

a = 1
if a == 0:
 print(“aは0です。”)

print(“処理を終了します。”)

[実行結果]
処理を終了します。

偽の時の書き方(elif、else)

ifの判定結果がFalseのときは、elif、elseを使用します。

a = 1
if a == 0:
 print(“aは0です。”)
elif a == 1:
 print(“aは1です。”)

[実行結果]
aは1です。

else節はif文もelif節もFalseの場合に実行されます。

a = 2
if a == 0:
 print(“aは0です。”)
elif a == 1:
 print(“aは1です。”)
else:
 print(“aは0でも1でもありません。”)

[実行結果]
aは0でも1でもありません。

Pythonでは、インデントによってif文、elif節、else節がどのように対応しているかを表現します。

elif節はいくつでも書けます。

例えば下記のような構文も成り立ちます。

a = 0
if a == 0:
 print(“aは0です。”)
elif a == 1:
 print(“aは1です。”)
elif a == 2:
 print(“aは2です。”)
else:
 print(“aは0でも1でも2でもありません。”)

[実行結果]
aは0です。

判定は上から順に行われます。

a = 0
if a == 0:
 print(“aは0です。”)
elif a == 1:
 print(“aは1です。”)
elif a < 2:
 print(“aは2です。”)
else:
 print(“aは0でも1でも2でもありません。”)

[実行結果]
aは0です。

上記の例では、「a == 0」と「a < 2(aは2より小さい)」の両方の条件でTrueとなりますが、「a == 0」の方が先に判定されます。

Pythonでは、処理の末尾に「:(コロン)」は不要ですが、if文、elif節、else節の末尾には「:」が必要です。

「:」がない場合、エラーとなります。

a = 0
if a == 0

[実行結果]
SyntaxError: invalid syntax

 

比較演算子と論理演算子

比較演算子と論理演算子

比較演算子の書き方

比較演算子とは、2つの値を比較して結果を真偽値で返すものです。

比較演算子の種類は次のとおりです。

A == B
AとBが等しいときTrueを返します。

a = 0
if a == 0:
 print(“aは0です。”)
else:
 print(“aは0ではありません。”)

[実行結果]
aは0です。

a = 1
if a == 0:
 print(“aは0です。”)
else:
 print(“aは0ではありません。”)

[実行結果]
aは0ではありません。

A != B
AとBが等しくないときTrueを返します。

a = 1
if a != 0:
 print(“aは0ではありません。”)
else:
 print(“aは0です。”)

[実行結果]
aは0ではありません。

a = 0
if a != 0:
 print(“aは0ではありません。”)
else:
 print(“aは0です。”)

[実行結果]
aは0です。

A < B
AがBより小さいときTrueを返します。

a = 0
if a < 1:
 print(“aは1より小さいです。”)
else:
 print(“aは1より小さくありません。”)

[実行結果]
aは1より小さいです。

a = 1
if a < 1:
 print(“aは1より小さいです。”)
else:
 print(“aは1より小さくありません。”)

[実行結果]
aは1より小さくありません。

A <= B
AがB以下のときTrueを返します。

a = 0
if a <= 0:
 print(“aは0以下です。”)
else:
 print(“aは0以下ではありません。”)

[実行結果]
aは0以下です。

a = 1
if a <= 0:
 print(“aは0以下です。”)
else:
 print(“aは0以下ではありません。”)

[実行結果]
aは0以下ではありません。

A > B
AがBより大きいときTrueを返します。

a = 1
if a > 0:
 print(“aは0より大きいです。”)
else:
 print(“aは0より大きくありません。”)

[実行結果]
aは0より大きいです。

a = 0
if a > 0:
 print(“aは0より大きいです。”)
else:
 print(“aは0より大きくありません。”)

[実行結果]
aは0より大きくありません。

A >= B
AがB以上のときTrueを返します。

a = 0
if a >= 0:
 print(“aは0以上です。”)
else:
 print(“aは0以上ではありません。”)

[実行結果]
aは0以上です。

a = -1
if a >= 0:
 print(“aは0以上です。”)
else:
 print(“aは0以上ではありません。”)

[実行結果]
aは0以上ではありません。

条件に合致しないときは、それぞれFalseを返します。

論理演算子の書き方

論理演算子とは、複数の条件を組み合わせた演算を行った結果を真偽値で返すものです。

論理演算子の種類は次のとおりです。

X and Y
XがTrue かつ YがTrue のときTrueを返します。

mathematics = 90
english = 85
if (mathematics >= 80) and (english >= 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
合格です。

mathematics = 90
english = 75
if (mathematics >= 80) and (english >= 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
不合格です。

X or Y

X、Yの少なくともどちらか1つがTrue のときTrueを返します。

mathematics = 90
english = 75
if (mathematics >= 80) or (english >= 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
合格です。

mathematics = 70
english = 75
if (mathematics >= 80) or (english >= 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
不合格です。

not X

XがFalseのときTrueを返します。

mathematics = 90
if not (mathematics < 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
合格です。

mathematics = 70
if not (mathematics < 80):
 print(“合格です。”)
else:
 print(“不合格です。”)

[実行結果]
不合格です。

条件に合致しないときは、それぞれFalseを返します。

まとめ

Pythonのif文について解説しました。

他のプログラミング言語との記述方法の違いなどは理解できたでしょうか。

ここでは基本的な制御構文についてしか述べていませんが、まだまだ覚えるべきことはたくさんあります。

Pythonは、WebアプリケーションやAI、機械学習、ビッグデータなどの開発に使用されており、用途は幅広いです。

そのため、身に付けておくと、自分の市場価値を上げることに繋がり、企業からも求められやすいスキルです。

Pythonについて、より多くの知識を吸収したい場合、自分で学習するだけでは不十分なこともあります。

実務で使用することが最もスキルを伸ばしやすいため、Python案件に携わることで、スキルを習得することができるでしょう。

また、Pythonの案件に携わることができれば、新しい情報のキャッチアップもしやすくなります。

近年、AIや機械学習の台頭により、Pythonを使用できるエンジニアの需要は非常に伸びています。

企業側も即戦力となるエンジニアを活用するために、正社員として自社社員の採用だけでなく、よりスキルフルなフリーランスエンジニアへの依頼も積極的に行うようになっています。

i-common tech」は、フリーランスITエンジニア専門のエージェントサービスであり、Python案件を豊富に扱っています。

習得したPythonスキルを活かせる案件に出会う可能性を高めることができます。

取り扱う案件の中には、3か月以上の長期案件や90万円以上の高単価案件もあり、さらなるスキルアップに繋げることもできます。

Pythonのスキルを活かし、フリーランスとして案件を獲得したい人は、ぜひご登録ください。