pythonのif文はプログラムを書く上でなくてはならない存在です。
if文は条件分岐の一つである条件が成り立つ時、成り立たない時に分ける際に使用します。
このif文を理解していることで、より見やすく美しいプログラミングコードを記載することができます。
ここでは初心者の方でも理解できるようにif文について解説していきます。
if文の基本的な使用方法
ではpythonのif文について、まず構造を基に解説していきます。
プログラム中にif文は下記のように記載します。
if 条件1:
条件1が成り立つ場合の処理1
elif 条件2:
条件2が成り立つ場合の処理
else:
条件1、条件2ともに成り立たない場合の処理
他のプログラミング言語を触ったことがある方ならわかるよ思いますが、他の言語でのif文と機能としては同様です。
if文で条件1が成り立てば、直後にある処理を実施します。
そしてif文以外の条件としてelifを記載します。
これは何個でも記載することができ、条件2が成り立った場合に記載します。
最後にあるelseはこれまでに記載したif-elifの条件がすべて成り立たなかった場合に実施する処理を記載します。
このように指定条件分岐を実施していきますが、条件が成り立った場合の処理は複数行で記述することも可能です。
下記のように処理の前に空白を設定することで、その処理は条件が成り立った場合に実施することとなります。
仮に下記のように記述した場合は条件1が成り立った場合は処理1を実施し、処理2は条件1が成り立とうが、成り立たなかろうが実施するということになります。
Javaとかですと{}でif文の範囲を指定していたのですが、pythonではそういったものがなく、空白で判断するようになっている感じです。
具体的な使用方法としては下記のように実施します。
【使用方法】
a=20
if a<20:
print("small 20")
elif a==20:
print("a=20")
else:
print("big 20")
print("common")
【実行結果】
a=20
common
aの値が20のためelifは実施され「a=20」と出力されます。
またif-elif-else文の外に「common」と出力するコードがあるため、それも一緒に出力いたします。
if文で使用する演算子について
if文では条件式を使用することで条件分岐を行います。
この条件式には比較演算子、論理演算子を使用してい大小関係などを調べたり、直接True・Falseを入力して分岐を行う場合もあります。
ここではif文で使用可能な演算子を紹介していきます。
比較演算子
演算子 | 使用例 | 説明 |
---|---|---|
== | a == b | aとbが等しい |
!= | a != b | aとbが等しくない |
< | a < b | aはbよりも小さい |
> | a > b | aはbよりも大きい |
<= | a <= b | aはb以下である |
>= | a >= b | aはb以上である |
in | a in b | aはbに含まれる |
not in | a not in b | aはbに含まれない |
比較演算子はそこまで難しいものはなく、数学を学んでいればある程度は分かる内容となっています。
ただ「in」や「not in」という見慣れないものもあると思います。
「in」「not in」は集合の関係を判断するものとなっています。
下記の例を使用して解説していきます。
a="cd"
b="abcdef"
if a in b:
print("a in b")
aには「cd」という文字列が、bには「abcdef」という文字列がそれぞれ入っています。
そしてaの「cd」はbの「abcdef」中にも含まれていることが分かります。
よって「a in b」を実施すると「cd」は「abcdef」に含まれているという条件が成り立つため「a in b」という出力結果となります。
「not in」もこの考え方と同様で含まれない場合に条件が成り立ち処理を実行するということになります。
論理演算子
演算子 | 使用例 | 説明 |
---|---|---|
and | a and b | 条件式aと条件式bがともにTrueの場合はTrueを返す |
or | a or b | 条件式aまたは条件式bのどちらかがTrueの場合Trueを返す |
not | not a | 条件式aがTrueならFalseをFalseならTrueを返す(反転する) |
論理演算子は上記の3つがあります。
if文で複数の条件を作成したい場合に使用します。
実際の使用例として下記の通りとなります。
a=20
if a>10 and a<30:
print("10<a<20")
aの値が10よりも大きく、30よりも小さい値の場合は「10<a<30」と出力するコードとなっています。
三項演算子
三項演算子とは今まで複数行で記述していたif文を一行で記述することができるようになる演算子のことです。
通常のif文は下記のように記載します。
a=20
b=40
if a==b:
print("Same value")
else:
print("Different value")
これを三項演算子を使用してい記入すると下記のようになります。
a=20
b=40
print("Same value") if a==b else print("Different value")
複数行で記載していたものを、ギュッとまとめたい場合には三項演算子を使用することで一行で記載することができるようになっています。
ただ慣れていない場合や複雑な条件文となってくると見にくいため、自分としては通常の記載方法がいい気がします。
ただそういった記載方法もあるということは覚えておいて損はないので、頭の片隅にでも置いておいてください。
pass文、continue文、break文について
最後にご紹介するのはpass文、contineu文、break文についてです。
それぞれ例も交えて解説していきます。
pass文
pass文は何かを必ず記述する必要なあるところに、何も記述したくない場合に使用するものです。
a=10
if a==20:
①
elif a==10:
print("a=10")
else:
print("Different value")
例えば上記コードで①の部分に何も記述したくないが、このif文は記述したいとなったとします。
if文は通常条件を記述した場合、何か処理を記述しないとエラーとなります。
そのため何も記述しないということはできないしようとなっていますが、ここでpassを記述することでその問題が解決します。
①の所に「pass」と記述するだけでエラーが出なくなります。
continue文
次にvontinue文です。
これはJavaにもありましたが、ループ処理の先頭に戻ることができます。
よくif文はfor文などと一緒に使用されることがありますが、その際に特定の数値となった場合に以降の処理を飛ばすことができます。
実際の例と実行結果を下に記載します。
【使用方法】
for i in [0,1,2,3,4]:
if i==3:
continue
print(i)
【実行結果】
0
1
2
4
iの値が3となった時に3の値を出力されないように飛ばしています。
そして以降の処理は問題なく実施していますので、continueによって3の値だけを飛ばしていることが分かると思います。
break文
次はbreak文です。
先ほどはcontinue文で処理を飛ばすと記載しましたが、このbreak文はfor文等の繰り返し処理自体を飛ばすことができます。
使用方法と実行結果を下に記載します。
【使用方法】
for i in [0,1,2,3,4]:
if i==3:
break
print(i)
【実行結果】
0
1
2
見てわかる通りiの値が3と等しくなったと同時にbreak文を実行して、for文を終了しています。
そのせいで3,4の値をは出力されていません。
まとめ
この記事ではpythonのif文について下記手順で解説してきました。
- if文の基本的な使用方法
- if文で使用する演算子について
- pass文、continue文、break文について
python以外のプログラミング言語を触ったことのある方なら、ほぼ同じような使用方法となっているため、そこまで無理なく理解することができると思います。
しかし記載方法等が少し異なる部分もありますので、そのあたりは一度目を通しておくといいと思います。
以上で今回の解説は終了となります。
コメント