pythonにおけるブール演算子
先日紹介したこちらの本、本日完読いたしました
めっちゃ読みやすかったんで初心者の人にもおすすめですわ
んで、本当はWebスクレイピングにつてはなそかなって思ったんすけど、あれ書くとき自分でもかみ砕きながら書きたいから結構時間かかりそうだなーって思ったのと、それやると時間かかるなーってのとで、今日はサクッと終わる内容にしようと思ってね
まず、pythonにおける真偽の定義
False:False、None、すべての型における数値の0、空の文字列、空のコンテナ
True:False以外
んで、比較演算とかブール演算とかすると上記の値が返ってくることがまぁいろんな言語で大体共通だと思う
んでpythonにはブール演算にand、or、not ってのがあるんですよ
それぞれどういう挙動かっていうとね
A and B:Aを評価する→Aが偽ならAの値を返却→それ以外ならBの値を返却
A or B :Aを評価する→Aが真ならAの値を返却→それ以外ならBの値を返却
not A:Aを評価する→Aが偽ならTrueを返却→それ以外ならFalseを返却
notはまぁわかりやすいと思う
問題は残り二つ
こいつらはTrue/Falseを返すのではなく、Aの値/Bの値を返す
どういうことかというと
- andの場合、左側がTrueとして扱われるので、右側の値がprintに渡される
- andの場合、左側がFalseとして扱われるので、左側の値がprintに渡される
- orの場合、左側がTrueとして扱われるので、左側の値がprintに渡される
- orの場合、左側がFalseとして扱われるので、右側の値がprintに渡される
ということで、これ知ってないともしかしたらこんな事態になるかもしれない
まぁ上の場合だと==Trueいらないじゃんみたいなお話もあるんだけど、True/Falseが返ってくるって思いこんでると、変な感じになるかもしれないから気をつけようねってお話し
vscodeのデフォルトの文字の間隔が微妙に違うから1文字ずつ揃えられるようにしよ