好吧, 我会的
在这段视频里, 我会试着欺骗你｡
我想让你们看看这些表达式, 我在这里检查是否相等｡
好吧, 我知道了
我是说, 嘿, 真的等于一吗？
空字符串等于1吗？删除等于空字符串的相等字符串｡
嗯对方｡
现在暂停视频, 试着猜一下结果会是什么｡
准备好了
顺便说一句, 如果你百分之百相信的话｡
好吧, 那就好, 因为如果这是我第一次学习Python, 我就不会得到这个｡
我们走吧｡
嗯嗯嗯
这就是你期望的吗？
是的｡
求值为true等于want求值为true｡
空字串相等评估为false的字串｡
这是有道理的, 因为他们肯定不等于对方｡
对不对？
空数组不等于1｡
十等于十｡ 0.
然后两个种族那都是空的｡
等于真｡
现在, 我在这里给你们看的原因是, double equals检查是否相等或者值是否相等｡
也就是说, 如果, 例如, 第一个true等于1｡
有两种不同的类型｡
一个是整数, 一个是金条｡
它会将它们转换为相同的类型｡
在这种情况下, 它将像这样转换为布尔值｡
如果你还记得的话, 其中一个就是真相｡
所以这将被评估为true, 这就是为什么我们得到true｡
另一个呢？
空字符串是假的, 所以它的计算结果为false｡
假不等于真｡
好吧, 我知道了
因为我们在检查是否相等｡
所以其中一个会转换成另一个型别｡
那么空数组呢？
同样, 空数组实际上是错误的｡
所以这不等于1｡
10等于10的浮点数｡ 0.
转换成整数或浮点数, 它们会相等.
这是意料之中的行为｡
然后一个空数组, 就等于一个空数组.
如果我在这个数组中添加, 一, 二, 三, 一, 二, 三, 然后单击“运行.”
我得到了一个无效的语法, 因为我在这里有这个｡
再来一遍｡
我得到真实｡
有道理｡
让我们将其更改为1, 然后看看单击“Run”（运行）会发生什么｡
好吧, 我会的
还是假的｡
现在, 这确实有点棘手, 对吧？
喜欢｡
嗯嗯嗯
这是否应评估为true？
但不, 我们得到的是假的｡
所以它没有被转换成我们这里的类型｡
现在, 不要被这个弄糊涂了, 因为如果你检查这样的东西, 这将是错误的代码｡
显然你应该检查两种类型, 两种相同的类型.
理想情况下, 当你像这样使用比较运算符或逻辑运算符时, 你是在比较两个类型,
而不是让Python做这种类型转换｡
希望Python能帮我们解决｡
但我希望双重属性是有意义的, 因为我们还可以做另一个检查, is和is
well是一个关键字和python｡
如果我们把所有的等号都改成是｡
你觉得会有区别吗？
我们来看看｡
如果我单击“运行”｡
我什么都做错了｡
嗯嗯嗯
这有什么区别呢？
“等于”检查值是否相等｡
比如什么？
一, 二, 三, 一, 二, 三
它的值和一, 二, 三是一样的.
实际上是支票在列｡
如果存储此值的内存位置相同｡
嗯嗯嗯
让我们来看看｡
真的｡
是, 一注真是一注不真是一注好只有真率才会真｡
说说什么｡
一号线｡
是那个吗？
不, 不, 不
我的意思是, 一个字符串, 必须是一个, 对不对？
因为一个字符串并不是只存在于内存的一个地方｡
其实是一样的｡
这份名单呢？
而事实上, 咱们做的是阵, 空阵？
这份名单是名单吗？
好吧, 如果我们运行这个｡
我还是弄假的｡
嗯嗯嗯
这是一个有点棘手的问题, 也是先进的｡
每次我创建一个列表时, 它都会被添加到内存中的某个位置｡
所以这是在内存中的一个位置｡
但每当我创建一个新列表｡
它是在另一个位置创建的｡
所以这是两个完全不同的列表, 它们位于内存中的不同位置｡
所以它会检查, 嘿, 这是在同一个内存空间, 同一个书架上吗？
不, 不是这样的｡
但是为什么这对数字和字符串这样的东西有效呢？
这是因为在引擎盖下, 这些类型非常简单,
它们在内存中, 但是在一个位置, 而不是像列表一样, 即使这可能是具有相同项的同一个列表｡
因为这是数据结构｡
每次我们创建它的时候, 它都是在一个新的位置创建的, 所以即使我们有一个变量A, 它包含｡
这份名单｡
顺便说一下, 这对于所有的数据结构都是一样的, 比如字典, 集合, 元组｡
如果我做B等于这个, 我检查A, 是B吗？
不知道｡
它们是在不同的内存空间中创建的｡
所以a点和B点在不同的地方｡
但如果我做了A就等于是｡
我得到true是因为这个双重等式检查｡
只有山谷｡
这是一个有点难的话题, 所以你可能要看几遍这个视频｡
你可能要自己练习几次｡
但请记住, IS和双重等于之间的区别往往会更严格一点｡
你要检查的是你要找的东西, 而等式检查的是值｡
好吧, 我会的
这是一个doozy｡
下一个视频里见｡
再见, 再见, 再见