ここでは､ プログラミング全般で重要な概念である条件論理について説明します｡
条件付きロジックとはどういう意味か？
ブーリアンについて学びましたね｡
私たちは真を持っています｡
そして､ 私たちは偽物を持っています｡
そして､ なぜそんなに便利なのか､ 疑問に思っている方もいらっしゃるかもしれません｡
そして､ 条件付きロジックに関しては､ ブーリアンは本当に､ 本当に重要です｡
例えば､ altという変数を作るとします｡
そして､ ご存知ですか？
エンジンをかけられるかどうかを自動で検知するクルマを作ります｡
たぶん､ 年齢が低いとエンジンがかからず､ 運転できないので､ この車が超安全で､
おそらく18歳以上の人しか運転できないことを確認するためでしょう｡
では､ どのようにコーディングすればいいのでしょうか？
テスラがこのような新機能を搭載したとします｡
まあ､ is oldみたいなのがあって､ これを設定します｡
本当です｡
そうですね｡
もしかしたら､ 他にもあるかもしれません｡
多分､ ライセンスを確認するので､ ライセンスですと言えるのでしょう｡
そして､ それをtrueに設定すればいいのです｡
さて､ これらはユーザーとドライバーによって､ trueとfalseが変わる可能性があります｡
しかし､ 条件付きというと､ こういうことになる｡
Pythonではifキーワードを使って､ ある条件が存在するかどうかを言うことができますが､ これは私が書いているだけです｡
存在しないのです｡
無効な構文で赤いアンダーラインが表示されるのがわかると思います｡
しかし､ ここではtrueまたはfalseと評価される条件を言いたいのです｡
この場合､ ifは古いので､ どのように評価されるかというと､ trueと評価されます｡
それが本当なら､ プリントと言いましょう｡
あなたは運転できる年齢です｡
さて､ ここで少し新しいことがあります｡
1つは､ セミコロンやコロンを付けていること｡
そして､ ここでインデントが違うことがわかると思います｡
実は､ エンターキーを押すと
カレンの後､ 自動的にスペースができるのがわかりますね｡
これはPythonのインタープリタに､ これからif文､ つまり条件付きの操作をしますよと伝えるものです｡
そして､ もしこれが事実であったなら
このインデントがあるこの中のものをすべて実行します｡
そして､ インデントなしで何かをする場合､ 例えばprintとします｡
チェックする｡
Pythonのインタープリタにとって､ これは全く新しい行のようなものです｡
このFブロックの一部ではありません｡
そして､ ここにあるリップルを使っている場合､ これをクリックすると小さなマイナス記号が表示されますね｡
隠れているのがわかりますね｡
これは､ 「これはこっちのコードブロックです」と言うことです｡
それだけで全体が成り立っているのです｡
しかし､ うまくインデントされていない外側のものは､ それに属さないのです｡
Pythonのインタープリターには､ この行とこの行がある､ と表示されるわけです｡
このプログラムを実行するとどういうことになるか､ お見せしましょう｡
運転できる年齢なんですね｡
そして､ チェックも受ける｡
チェックする｡
しかし､ もし私が､ 古いものは今や偽りだと言ったらどうしますか？
どうなると思いますか？
これを実行すると
わかった？
チェックする｡
Pythonインタプリタは､ 変数resultをfalseに設定し､ hey set is licensed equals to trueと言うつもりです｡
そして､ 3行目に入ります｡
いいえ､ 何もありません｡
のために行を続けるつもりです｡
ねえ､ 古いとしたら､ これって本当なの？
いいえ｡
もしこのすべてが偽で､ インタプリタが､ オッ､ このコード片はこれが真の場合にのみ実行することになっている､
なぜならこれは現在偽だからだ､ と言い出したら､ 私はこの下のものを完全に無視して､ まあインデントがない次の行に行くだけでしょう｡
だから､ 印刷されるんですよ､ チェック､ チェック｡
そして､ これが条件文の力なのです｡
基本的に列を飛ばすことができるんです｡
4行目から6行目までをスキップするようにプログラムしただけのことなので､ インタープリタはここに何が入っているかなんて気にもしていません｡
なんてかっこいいんでしょう｡
そこで､ このifキーワードがあることを学びましたが､ もう一つ､ elseというものも使えます｡
そして､ ここでお気づきのように､ インデントには加えていないのです｡
その他は､ その名の通り､ 単に言うだけです｡
おい､ この何かが本当なら､ これをやれよ｡
それ以外の場合は､ このようにします｡
そしてまた､ インデントを追加しているのがおわかりいただけると思います｡
そこで､ この番組で何が起こるか､ 当ててみてください｡
実行」をクリックすると
チェックを受ける｡
チェックは､ おいおい､ 古いぞ､ と言っているからです｡
そうなんですか？
いや､ そんなことはない｡
なるほど｡
インタプリタがelseを見ていることは完全に無視します｡
まあ､ これは事実ではなかったのですが｡
だから､ 私は走ります｡
これがfalseと評価されたら､ 必ず実行することにしています｡
プリント､ チェック
チェックする｡
もし､ 私が変わったら？
昔→今→真となるのか？
この先どうなるのでしょうか？
まあね｡
わかった？
あなたは運転できる年齢です｡
Else.
f ブロックのコードが false と評価された場合のみ実行されます｡
とても､ かっこいいです｡
わかりました｡
もうひとつ質問させてください｡
ここで印刷したらどうなるんだろう？
そして､ これをyou are not of ageに変えましょう｡
これを実行すると
それは期待通りですか？
さて､ これであなたは､ これが期待される行動であることに同意していただけると思います｡ なぜなら､ 古いものは真実だからです｡
これを表示して､ Pythonインタプリタが､ これは本当だった､ だからこのブロックを完全に無視して､
次の行に行くだけだ､ と言い出すんです｡
8行目には何が書いてある？
何もない｡
そこで､ 9行目で､ OC OC OCとプリントしてみます｡
このように､ プログラムの流れをコントロールするために､ 1行目から9行目まで､ ただ一行ずつ進むのではなく､
4行目で何らかのチェックを行うようにしました｡
それを踏まえて､ 数行飛ばします｡
とても､ かっこいいです｡
わかりました｡
もうひとつ､ お見せしたいものがあります｡
そして､ Lである｡
もしや｡
そして､ これはちょっと変な感じですが
他力本願と思われるでしょうが｡
いえいえ､ そんなことはありません｡
lです｡
F.
そして､ これが何をもたらすとお考えですか？
まあ､ ifと組み合わせてif somethingと言うんですね｡
もしや｡
それ以外は｡
Else.
もしや｡
もう一つの条件｡
では､ 言ってみましょう｡
ライセンスされています｡
そして､ もう1つの条件を行う｡
では､ プリントとしましょう｡
もう運転してもいいんだよ｡
では､ もう一度おさらいしておきましょう｡
と言いたいところだが､ この人はもう歳なのか？
その人が歳をとっていて､ この評価がtrueになった場合｡
では､ そうしてほしい｡
これを実行してください｡
それ以外は｡
この条件で実行してほしい｡
ねえ､ これって本当なの？
いいえ｡
事実と異なる場合は､ elseにジャンプします｡
では､ ここで「実行」をクリックするとどうなるのでしょうか｡
最初の条件ブロックの真偽はこちらでわかります｡
だから､ Pythonのインタプリタが自動的に､ ここでtrueが出たから､
これを無視して､ printするんだ､ と言う｡
わかった､ わかった｡
しかし､ その古いものが今は嘘だとしよう｡
この先どうなるのでしょうか？
実行」をクリックすると
これは誤りです｡
Pythonの通訳は､ 「いや､ このブロックは気にしない」と言い､ 私は「おい､
他の条件ならおい､ この人は免許を持っているのか？
ええ､ そうです｡
だから､ 印刷するんです｡
今すぐ運転できるのに､ 他を無視する｡
つまり､ 次のような仕組みです｡
もし､ その両方が偽りだったら？
さて､ ご想像の通り､ Pythonインタープリタはこれを無視して､ nope, this is false, this nope,
this is falseと実行するつもりです｡
そして､ 最後にこれを実行するのです｡
ほら､ あの他にはキャッチがありますよね｡
どの条件も当てはまらなければ､ このまま実行するだけです｡
ある意味､ バックアップなんですね｡
なあに､ 万策尽きたら､ こうすればいいんだよ｡
とても､ かっこいいです｡
さて､ このプログラムを見て､ うーん､ このプログラム､ そんなにうまくいかないよなあ､ と思われた方｡
高齢かどうか､ 免許を持っているかどうかをチェックしているが､ 両方チェックすべきではないか？
免許を持っていて､ 乾燥できる年齢の人がいい｡
ふむ｡
これは
これはバグが多いプログラムです｡
これをテスラに実装したら､ まあ､ 訴訟だらけになるよね｡
だって､ 免許は持っているけど年齢が足りないという人が出てくるかもしれないし､ それは意味がないと思うんです｡
しかし､ 運転免許を取得していない年齢層の人を捕まえて､ どうにかして車にアクセスし､ エンジンをかけて運転できるようにすることはできます｡
ああ､ これは訴訟待ったなしですね｡
では､ どうすればこれを解決できるのか｡
うーん｡
その力を知っていますか？
これは表現なんだろうと｡
式というのは､ 思い出してみると､ 値を生成するものです｡
そして､ それはつまり､ ここに真がある必要はなく､ もしそうならという表現にもなりうるということです｡
古いもので､ ライセンスされています｡
それなら､ 私にもできる｡
そして､ これは今までにない新しいものです｡
終わりです｡
これもPythonのキーワードの一つです｡
そして､ 次回のビデオでは､ これらのキーワードについてさらに詳しくお話します｡
でも､ これって英語っぽく読めばいいんでしょう？
古いもので､ ライセンスがある場合は､ こうしてください｡
これでLEFを外すことができるわけです｡
そして､ ここにも｡
両方の式が真を評価する必要があります｡
つまり､ ここで何が起ころうとも､ です｡
これは真に評価されなければならない｡
そして､ これは真に評価されなければならない｡
そして､ エンドの言うように両方が再び真実になったとき初めて､ 運転できる年齢になり､ 免許を持つことになるのです｡
これを実行すればいいように｡
という理由でエラーレートが出たり､ エラーでなくてもブロックに入ったりするのですが､ どちらも偽なので｡
どちらか片方だけで､ 実行をクリックした場合｡
この両方が成立してこその年齢なのですから｡
実行」をクリックすると
ねえ｡
よし､ クルマが動き出したぞ｡
テスラで走り出すことができます｡
なるほど｡
このビデオを終える前に､ これはたくさんあるので､ 1つだけ注意したいのは､ l if文のことです｡
このようにif文とL文があるようなコードでは､ live文は本当に便利です｡
通常はそれぞれ1つずつしか見ることができません｡
つまり､ 確かに､ プログラムの別の部分で､ ここの中に別のif文とelse文があってもいいんだけどね｡
しかし､ 通常このようにグループ化すると､ ifとelseが1つずつしか表示されませんが､ FSは複数持つことができるので､
ここにlef another conditionを持ち､ さらにここにlef another conditionを持ち､ いくつでも持つことができるのです｡
最終的にプログラムは､ これらの条件のいずれかを評価してtrueにするか､ elseに入ることになります｡
BLOCK でも､ 普通はこの順番に従うんですよね｡
わかりました｡
多かったですね｡
一息ついて､ このテーマをもう少し掘り下げてみましょう｡
次回作でお会いしましょう｡
バイバイ｡