之前粗略地提到 bool 类型的变量,又说到 if 和 while 的判断条件。有些同学反馈说没怎么理解,为什么一会儿是 bingo=False,一会又是 bingo==False,一会儿是 while 在条件为 True 的时候执行,一会儿又是 while 在 bingo==False 的时候执行。别急,你听我说。
首先,要理解,一个逻辑表达式,其实最终是代表了一个bool类型的结果,比如:
1 < 3
这个就像当于是一个True的值
2 == 3
这个就是False
把它们作为判断条件放到 if 或者 while 的后面,就是根据他们的值来决定要不要执行。
同样的栗子再来几颗:
a = 1
print(a>3) #False
print(a==2-1) #True
b = 3
print(a+b==2+2) #True
比较容易搞混的,是bool变量的值和一个逻辑表达式的值,比如:
a = False
print(a) #False
print(a==False) #True
虽然 a 本身的值是 False,但是 a==False 这个表达式的值是True。(说人话!)“a”是错的,但“a是错的”这句话是对的。
回到上面那几个概念:
bingo=False
把bingo设为一个值为False的变量
bingo==False
判断bingo的值是不是False,如果是,那么这句话就是True
while 在判断条件条件为 True 时执行循环,所以当 bingo==False 时,条件为 True,循环是要执行的。
晕了没?谁刚学谁都晕。不晕的属于骨骼惊奇百年一遇的编程奇才,还不赶紧转行做程序员!
逻辑这东西是初学编程的一大坑,我们后面还要在这个坑里挣扎很久。
留个习题:
a = True
b = not a # 不记得not请回顾 6.bool
想想下面这些逻辑运算的结果,然后用 print 输出看看你想的对不对:
b
not b
a == b
a != b
a and b
a or b
1<2 and b==True