【Python】if文

ここでは条件分岐を行うif文について学びます。
if部分に条件式を記述、条件に一致した場合はtrueブロック、不一致の場合はfalseブロックを行います。
ここでブロックと表現したのは、この中にも複数の行を書くことが出来るからです。

 

 

if文の構文

実際にプログラムではこのような構文になっています。
if 条件式:
trueブロック
else:
falseブロック

if文例

実際のプログラム例を示します。
例題:1個15円のあめ玉を手持ち金額で何個買えるか?のプログラムを書いてみましょう。1個も買えない場合は、「お金が足りません!」と表示します。

簡単にプログラムの説明をします。
最初の1行目であめ玉の値段を設定します。
次の行で手持ちの金額を入力させています。そのまま代入すると文字列として入ってしまうので整数型にしています。
次のifの行が条件判断です。
kingaku < amedamaで手持ちの金額があめ玉の金額15円より少ないかを判断しています。
少ない場合はtrueになりますのでtrueブロックであるprint(“お金が足りません!")を実行しif文を終了します。
最後にprint(“if文を抜けたのでプログラムを終了します")を実行しプログラムを終了します。

15円以上手持ちがある場合はfalseブロックに進み手持ちの金額であめ玉の買える個数を計算して表示します、
if文を抜けると最終行print(“if文を抜けたのでプログラムを終了します")を実行しプログラムを終了します。

インデント

if文の中はtrueブロック,falasブロック共に字下げを行っています、これをインデントと言います。
pythonではインデントでブロックを判断しています。pythonではインデントをそろえることが要求されます。
インデントが異なると同一ブロックとは見なされません。
インデントをそろえるため筆者はtabを利用しています。(サンプルはgistの関係上tabがスペースに置き換わっています)

false無しのif文

if文でelse部分を抜くことも可能です。
先ほどのサンプルの5行目から7行目をコメントアウトして実行して下さい。
手持ちの金額を100円とするとfalseブロックがありませんので最終行print(“if文を抜けたのでプログラムを終了します")を実行しプログラムを終了するはずです。

条件式

前後してしまいましたが、if文に利用出来る条件式を挙げます。
条件式はC言語などとも共通の記述です

演算子 意味
== a==b aとbが等しいならtrue
!= a!=b aとbが異なるならtrue
> a>b aがbより大きいならtrue
< a<b aがb未満ならtrue
>= a>=b aがb以上ならtrue
<= a<=b aがb以下ならtrue

elif文

if文のバリエーションとしてelif文があります。これは複数のifに対応出来る形の文になります。
年齢により小学生、中学生などを判定するプログラムを考えてみましょう。
まずはif文で作ってみましょう。

プログラムとしてはこれでも正常に動作しますが、if文の中にif文が何度も重なり(これをネストが深いと言います)見にくくなっています。
これはelif文を使うことでもう少し見やすく記述することが出来ます。

サンプルを見て見ましょう。
ネストが1段になり見やすくなりました

今回はここまで。

お疲れ様でした。

python教室「総合目次」に戻る

 

 

 

 

Python教室

Posted by taka