落書き

ゴミ箱に入れてもいいようなこと

pythonにおけるブール演算子

www.amazon.co.jp

先日紹介したこちらの本、本日完読いたしました

めっちゃ読みやすかったんで初心者の人にもおすすめですわ

ダイレクトマーケティングです

 

んで、本当はWebスクレイピングにつてはなそかなって思ったんすけど、あれ書くとき自分でもかみ砕きながら書きたいから結構時間かかりそうだなーって思ったのと、それやると時間かかるなーってのとで、今日はサクッと終わる内容にしようと思ってね

まず、pythonにおける真偽の定義

False:False、None、すべての型における数値の0、空の文字列、空のコンテナ

True:False以外

んで、比較演算とかブール演算とかすると上記の値が返ってくることがまぁいろんな言語で大体共通だと思う

C/C++Javaしかやったことないから知らんけど

 

んで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の値を返す

どういうことかというと

f:id:haku_qoo:20190710213630p:plain

  1. andの場合、左側がTrueとして扱われるので、右側の値がprintに渡される
  2. andの場合、左側がFalseとして扱われるので、左側の値がprintに渡される
  3. orの場合、左側がTrueとして扱われるので、左側の値がprintに渡される
  4. orの場合、左側がFalseとして扱われるので、右側の値がprintに渡される

ということで、これ知ってないともしかしたらこんな事態になるかもしれない

f:id:haku_qoo:20190710214022p:plain

まぁ上の場合だと==Trueいらないじゃんみたいなお話もあるんだけど、True/Falseが返ってくるって思いこんでると、変な感じになるかもしれないから気をつけようねってお話し

 

vscodeのデフォルトの文字の間隔が微妙に違うから1文字ずつ揃えられるようにしよ