【Python】if文で処理の切り分けを【基本講座】
Pythonならずとも、どのプログラム言語においても最重要項目となる文法です。
ほとんどのプログラミングはifとforで成り立っているといっても過言ではないからです。
しっかり学んでください。
if文の基本
if文の使用例 インデントしよう!
Pythonにおいて、if文を使用する際、気を付けておきたいことがあります。
それは、インデントの存在です。具体的に書きましょう。
1 2 3 4 |
s = 10 if s == 10: print(s) |
さて、いろいろ突っ込むところはあるとして、これはどんな解が出るのでしょう?
正解は、エラーです。
なぜ?と思うかもしれませんが、実行すると
IndentationError: expected an indented block
と出たと思います。
まさにエラーメッセージ通りです。
Pythonでは、nameスペースでのブロック概念である{}がありません。
C++とかから来た人は、お馴染みの記述でしょう。
そのかわり、Pythonでのブロックは、インデントすることにあります。
つまり、上記のコードは、
1 2 3 4 |
s = 10 if s == 10: print(s) |
と修正すれば通るのです。
半角スペース4つ分が適当とされています。タブでもいいですが、
VSCodeやJupiterNoteなどの統合環境を使うと自動でインデントしてくれるので失敗することもないでしょう。
if文の使用例 :をつけよう!
先ほどのコードを思い出してください。
1 2 3 4 |
s = 10 if s == 10: print(s) |
:とはなんでしょうか?
これは、重要で:を付けているところまでがif文の条件とみなされます。
ちなみに:をつけないと
SyntaxError: invalid syntax
というエラーが出ます。
いろいろな比較演算子を覚えよう!
演算子 | 例 | 説明 |
== | a == b | aとbの値が等しければtrue、そうでなければFalse |
!= | a != b | aとbの値が等しくなければtrue、そうでなければFalse |
> | a > b | aとbよりおおきければtrue、そうでなければFalse |
>= | a >= b | aとb以上であればtrue、そうでなければFalse |
< | a < b | aとbより小さければtrue、そうでなければFalse |
<= | a <= b | aとb以下であればtrue、そうでなければFalse |
in | a in b | aとbの要素であればtrue、そうでなければFalse |
not in | a not in b | aとbの要素でなければtrue、そうでなければFalse |
is | a is b | aとbが同じオブジェクトであればtrue、そうでなければFalse |
is not | a is not b | aとbが同じオブジェクトでなければtrue、そうでなければFalse |
ケアレスミスに注意!
これは、Pythonに始まったわけではありませんが、有名なポカミスを紹介します。
1 2 |
if a = 1: print(a) |
合ってるはずなのに、なぜエラー?
と少し悩むかもしれません。
短いコードだからすぐ気付きますか?でも、万行を超えるソースならどうですか?
このときのエラーは
SyntaxError: invalid syntax
答えはお分かりでしょう。
条件式が=になっています。
ここに代入演算子は持ってこれないというエラーです。
elseの使い方
if文とセットで覚えておきたい記述は、elseです。
else文以降は、条件式が成立しなかった場合の処理を記述します。
1 2 3 4 |
if a : print(a) else: print(b) |
elifの使い方
if文を使って細かく条件を分けたい時に使うのが、elifです。
C++とかで else if を使ったことがある人には理解しやすいかと思います。
早速例を書いていきます。
1 2 3 4 5 6 7 8 |
if a ==10: print(a) elif b >= 20: print(b) else: print(5) |
上のブロックから順に判定され、合致すると処理が行われます。
今後、elif を使うことが増えるかもしれません。
C/C++、JavaScriptから来た方には、お馴染みの switch文がPythonにはないためです。
Pythonおすすめ書籍
最初の2冊は初心者向けです。Effectiv Pythonはこの2冊を終えてから読むとかなりわかりやすく感動できると思います。
|
|
|