复习知识点-没搞清楚的总结

1.短路计算问题

在廖雪峰的python教程中有关于短路计算的解释为:

1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

这里我将此“短路计算”提取为“影响计算”,即and和or的值为起决定作用的那个值。

a and b时:

 如果a为true,起决定作用的是b(b为true时,整个结果为true;b为false时,整个结果为false),所以返回的是b

 如果a为false,起决定作用的就是a,因为无论b为true还是false,整个结果都因为a为false而为false,所以返回的是a

a or b时也是同理:

 如果a为true,起决定作用的就是a,因为只要a为true,整个结果都是true,所以返回的是a

如果a为false,起决定作用的就是b,因为整个结果都是b,返回的也是b

 

以上叙述得知,and和or运算的取值都是取决于起决定因素的那个值的


#4、短路运算面试题:
>>> 1 or 3
1
真or假 --》真 1

>>> 1 and 3
3
真and假 --》假 3

>>> 0 and 2 and 1
0
假and真--》假0       后续一样不用做了 --》假0

>>> 0 and 2 or 1
1
真and假--》假2or真--》真 1

>>> 0 and 2 or 1 or 4
1and 真--》假0 or真 --》真1 or不用做了 --》1

>>> 0 or False and 1
False 
False and真--》False or不用做 --》假 False

 

posted @ 2020-06-01 23:53  学海无涯苦中作乐  阅读(135)  评论(0编辑  收藏  举报