让我们来谈谈条件逻辑, 这是编程中的一个重要概念｡
我所说的条件逻辑是什么意思？
我们已经了解了布尔值, 对吧？
我们有真的｡
而我们有假的｡
你们中的一些人可能想知道为什么它们这么有用｡
当涉及到条件逻辑时, 布尔值是非常非常重要的｡
例如, 假设我们创建一个变量alt｡
你知道吗？
我们要创造一辆汽车, 它能自动检测你是否能启动引擎｡
也许如果你不够大, 引擎就不会启动, 它不会让你开车,
这样他们就可以确保这辆车是超级安全的, 只有超过18岁的人才能开它｡
那么我们如何编写这样的代码呢？
我们假设特斯拉有这样的新功能｡
好吧, 我们会有类似旧的东西, 我们会把它设置为｡
是的｡
好吧, 我知道了
也许我们还有别的线索｡
也许它会检查许可证以确保我们有一个许可证, 这样我们就可以说是许可证｡
然后我们可以将其设置为true｡
现在, 根据用户和驾驶员的不同, 这些值可能会发生变化｡
但当我谈论条件句时, 这就是我的意思｡
在Python中, 我们可以用if关键字来表示某个条件是否存在, 这是我写的｡
它不存在｡
您可以看到, 我得到了一个带有无效语法的红色下划线｡
但这里我们要说的是一个条件, 它的求值结果是真或假｡
在我们的例子中, 我们可以说, 嘿, 如果是旧的, 它会评估为什么, 评估为真｡
如果这是真的, 那么让我们说打印｡
你已经到了开车的年龄了｡
现在这里有一些新的东西｡
第一, 我加了分号或冒号｡
然后你会看到这里的缩进是不同的｡
事实上, 当我按回车键的时候｡
在卡伦之后, 你会看到它自动给了我一个空间｡
这告诉Python解释器我将执行一个if语句, 一个条件运算｡
如果这是真的｡
把这里面所有的东西都查一遍｡
如果我做了一些没有缩进的事情, 比如说打印｡
检查完毕｡
这对Python解释器来说就像是一个全新的行｡
它不属于此F区块｡
如果你用的是这里的涟漪, 我会看到一个小减号, 如果我点击这个｡
你看它是怎么藏起来的｡
它的作用是说, 这是一个代码块.
它本身就是一个整体｡
但任何外部的东西, 如果缩进不好, 就不属于它｡
所以对于Python解释器来说, 它会说, 我有这行, 然后我有这行｡
让我来告诉你我运行这个程序是什么意思｡
我知道你已经到了可以开车的年龄了｡
然后我也去拿支票｡
检查完毕｡
但如果我说现在是老是假呢？
你觉得会发生什么？
如果我运行这个｡
我得到了什么？
检查完毕｡
我们的Python解释器会说, 嘿, 把变量result设为false, 嘿, set is licensed equals to true｡
然后它会转到第三行｡
不, 什么都没有｡
我会继续排队｡
咦, 是老苟, 这是真的吗？
不, 不, 不
如果所有这些都是假的, 解释器会说, och, 我只应该运行这段代码,
如果这是真的, 因为这是假的, 我会完全忽略下面的内容, 然后转到下一行,
没有缩进的那一行｡
所以它会打印, 检查, 检查｡
这就是条件句的力量｡
我们基本上可以跳过几行｡
解释器根本不关心这里有什么因为我只是告诉程序从第四行跳到第六行.
这很酷吧？
所以我们知道了if关键字, 但是我们也可以使用else｡
你会注意到我没有把它加到缩进里｡
而else, 顾名思义, 简单地说｡
嘿, 如果这是真的, 那就这么做｡
不然也目不斜视的干这个｡
再一次, 你可以看到我添加了缩进｡
所以试着猜猜这个程序会发生什么｡
如果我单击“运行”｡
我拿到支票｡
检查, 因为它说, 嘿, 是旧的｡
这是真的吗？
不, 这不是真的｡
好吧, 我会的
我将完全忽略解释器看到的其他内容｡
这不是真的｡
所以我要跑了｡
每当这个值为false时, 我总是运行｡
打印, 检查｡
检查完毕｡
如果我改变了呢？
老到现在等于真吗？
接下来会发生什么？
好吧, 我知道了
我得到了什么？
你已经到了开车的年龄了｡
别的｡
仅当代码的f块计算结果为false时才运行｡
非常, 非常酷｡
好吧, 我会的
我再问你一个问题｡
如果我在这里打印呢？
我们把这个改成你还没成年｡
如果我运行这个｡
这是你所期望的吗？
好吧, 我希望我现在你同意这是预期的行为, 因为是旧的是真的｡
我要打印这个, 然后Python解释器会说, 这是真的,
所以我会完全忽略这个块, 然后转到下一行｡
八号线有什么？
什么都没有
我将转到第九行, 打印OC, OC, OC.
正如你所看到的, 我们现在控制程序的流程, 而不是从1到9, 一行一行地,
我们现在说第四行, 做一些检查｡
在此基础上, 跳过几行｡
非常, 非常酷｡
好吧, 我会的
我还有一样东西要给你看｡
是L｡
如果｡
我知道这看起来有点怪｡
你可能会认为它会是其他的如果, 但是｡
不, 不, 不, 不, 不, 不, 不
是我｡
F､
你觉得这是干什么的？
你可以和if连用｡
如果｡
不然的话｡
别的｡
如果｡
另一个条件｡
那么, 让我们说｡
是许可证｡
然后再做另一个条件｡
所以我们说打印｡
你现在可以开车了
我们再来一遍｡
我要说的是, 这个人够老吗？
如果这个人已经足够大了, 并且这个值为true｡
好吧, 那我希望你去｡
查一下｡
不然的话｡
我想让你来做这个检查｡
嘿, 这是真的吗？
不, 不, 不
如果这不是真的, 那就跳到别的地方｡
那么, 如果单击“Run”（运行）, 会发生什么情况呢？
我们在这里的第一个条件块中得到true｡
所以Python解释器会自动地说, 好吧, 我们刚刚得到了真, 所以我会忽略这个,
忽略这个, 然后打印｡
好了, 好了, 好了
但咱们说的是旧的现在是假的｡
接下来会发生什么？
如果我单击“运行”｡
这是假的｡
所以Python解释器会说, 不, 不会关心这个块, 我会说, 嘿,
如果一个条件, 嘿, 这个人有许可证吗？
是的, 他们是｡
所以我要打印｡
你现在可以开车, 其他的就不管了｡
它是这样工作的｡
如果这两个都是假的呢？
你可以想象, Python解释器会忽略它会运行这个, 不, 这是假的, 这个,
不, 这是假的｡
最后它会运行这个｡
你看, 这是一个陷阱｡
也就是说, 如果这些条件都不成立, 那么我们就运行这个程序｡
所以从某种意义上说, 这是一种备份｡
嘿, 如果一切都失败了, 那就这么做吧｡
非常, 非常酷｡
现在, 如果你看这个程序, 你会想, 嗯, 这个程序并不真的工作得很好, 是吗？
我的意思是, 我们要检查这个人是否年老, 是否有执照, 但我们不应该同时检查吗？
我们要找有执照的人, 而且年龄大到可以干了｡
嗯嗯嗯
这才是｡
这是一个有缺陷的程序｡
如果我们在特斯拉上实现这个, 那么, 我们会得到很多诉讼, 对吗？
因为我们可以找一个可能有执照但年龄不够的人, 我想这是说不通的｡
但是我们可以找一个年纪足够大但从来没有拿到驾照的人, 然后我们就可以进入车里, 他们就可以发动引擎开车了｡
哦, 这是一个这是一个诉讼等待发生｡
那我们该怎么解决这个问题？
嗯嗯嗯
你知道什么是力量吗？
这是一种表达方式, 对吗？
如果你还记得的话, 表达式就是产生一个值的东西｡
这就意味着, 这不一定要你知道, 只要这里有true, 它可以是一个表达式, 所以我可以说,
如果是｡
旧的和有执照的｡
那我就能做到｡
这是我们从未见过的新事物｡
结束了｡
这是Python中的另一个关键字｡
在接下来的视频中, 我们将讨论更多的关键词｡
但这应该读起来像英语, 对不对？
如果是旧的并且已获得许可, 则执行此操作｡
现在我们可以移除LEF｡
然后这里｡
两个表达式都需要计算true｡
也就是说, 不管这里发生什么｡
这必须评估为true｡
这必须计算为true｡
只有当两个状态都为真时, 你才能开车, 你才有驾照｡
所以如果我运行这个｡
我得到了一个错误率, 因为不管是否是错误, 但是它进入了块中, 因为这两个都是假的｡
如果其中只有一个为真, 则单击“运行”｡
你还没成年因为这两个都必须是真的｡
如果我单击“运行”｡
嘿, 你好
好了, 车要启动了.
你可以开着你的特斯拉离开｡
好吧, 我会的
在我完成这段视频之前, 因为这是很多, 我想只注意一件事, 那就是l if语句｡
live语句非常非常有用, 因为当你有这样的代码时, 你有一个if语句和一个L语句｡
通常你只能看到一个｡
当然, 在程序的另一部分, 我可以有另一个if语句,
一个if语句和另一个else语句｡
但通常当你把这个组合在一起时, 你只能看到一个if和一个else, 但你可以有多个FS,
所以我可以在这里有一个lef, 另一个条件, 然后我可以在这里有另一个lef, 另一个条件,
你可以有任意多个｡
最后程序要么判断其中一个条件为真, 要么进入其他状态.
BLOCK但通常你会遵循这个顺序｡
好吧, 我会的
这是很多｡
让我们休息一下, 再深入探讨一下这个话题｡
下次见｡
再见, 再见, 再见