shinoblog-manabu

Progate(プロゲート)を使って初歩の初歩からプログラミング勉強をはじめました。無料から有料バージョンへ以降しつつ、自分辞書として活用しています。なるべく私と同じ初心者目線を使い、各プログラミング内容を説明したいです。

【Python】理論演算子の評価と短絡評価【if文】

f:id:shinoblog-manabu:20210730080322j:plain

じっくりマナブ

 

aはbで割り切れるのか というコードを書く

理論演算子endの働き について

f:id:shinoblog-manabu:20210730070944p:plain

 

例1:False

f:id:shinoblog-manabu:20210730071013p:plain

 

例2:True

f:id:shinoblog-manabu:20210730072340p:plain

 

 

例3:True

f:id:shinoblog-manabu:20210730070957p:plain

 

 

point

左のオペランドが偽であると確認した時点で、and式の評価は終了する。

 

例1:左のオペランドxに注目。xは偽であるため、オペランドの評価は省略される。

 

例2:左のオペランドxに注目。xは真であるため、右のオペランドは評価される。

 

例3:左のオペランドxに注目。xは真であるため、右のオペランドは評価される。

 

or演算子はどうか

 

例4:b == 0が成立したら、確認後そく終了。

f:id:shinoblog-manabu:20210730075111p:plain

6行目に注目

 

f:id:shinoblog-manabu:20210730075210p:plain

b == 0 が真だったので評価は「なし」

 

f:id:shinoblog-manabu:20210730074904p:plain

point

xを評価し、真の場合はその入力された値を生成する。

xが偽の場合、yを生成後、その入力された値を生成する。

 

 

まとめ

・このような左オペランド評価の結果のみで論理演算の評価結果が分かるとき、右オペランドの評価が省略されることを「短絡評価」と呼ぶ。 

 

 

注意点

end演算子・or演算子はいずれも短絡評価を行う。なので、右オペランドが評価されるとは限らない。

 

最後に生成される値は、最後に評価した値であることを覚えるようにしよう。

 

 

 

今回は以上になります。お疲れ様でした。