Python少儿编程小课堂(三) 入门篇(3)比较运算和逻辑运算
运算符(2)
上一节课讲了算术运算符和赋值运算符,本节继续讲其它运算符:
比较运算符==、!=、>、<、>= 、<=?
大于<、小于> 最好理解,和数学里的不等号相同。 >=和<= 分别对应数学中的大于等于≥和小于等于≤。 ==和 != 分别对应数学中的等于=和 不等于 ≠。
a == b 用双等号表示两个操作数是否相等,是为区别赋值运算的单个等号。
连续比较运算
和连续赋值一样,Python同样允许比较做连续运算,这让比较更像是一个数学表达式。如:
0 < a < 5,? ?0 <= b < 3,? 8 <=?c <= 9, 0 < a + b < c, ... 都是合法的比较运算。
比较运算的结果
是一个布尔型的值,要么是True,要么就是 False。
若: a = b = 2; c = 1; d = 0
则: a == b、a>c、a+b>c+d、b==c*2、b>=c+d? ,值为True a > b、b<c+d、a+c<=b、a+b+c<=3、a//b != c, 值为False
逻辑运算符and、or?、not? 分别称为: 逻辑与、逻辑或、逻辑非,简称:与、或、非。
逻辑运算中, 1 == True, 0 == False
逻辑运算与表达式 与运算、或运算
注:就是因为这些规律,在逻辑代数中与运算被称为逻辑乘、或运算被称为逻辑加。是不是很形像?? 0乘任何数都为0;1加任何数都为1。
非运算not 1 = 0 not 0 = 1not True = Falsenot False = True
运算优先级not > and > or
连续比较的等价算式:
0 < a < 5,? 等价于 a>0 and a<5 0 <= b < 3,?等价于 b>=0 and b<3 8 <=?c <= 9,?等价于 c>=8 and c<=9 not 1 < a < 5, 等价于 a <= 1 or a>=5
条件表达式?condition由比较运算或逻辑运算,或者它们的混合运算组成的表达式。
例1: 三条线段长度分别为a,b,c,能够组成三角形的必要条件:
a + b > c and b + c > a and c + a > b ,即任意两边之和大于第三边。
例2: 以下两个条件表达式,在当n为整数时完全等价:
n == 1 or n == 2 or n == 3 or n == 4 1 <= n <= 4
例3: 一个三位整数n,个位十位百位上至少有一个1的条件表达式为:
n // 100 == 1 or n // 10 % 10 == 1 or n % 100 == 1
扩展阅读:?
逻辑运算定律把条件表达式condition看作一个变量A,它的值只有1或0,我们称A为“逻辑变量”。
零一律A and 0 = 0? ? ? ? A or 0 = A
A and 1 = A? ? ? ? A or 1 = 1
重叠律A and A = A? ? ? ? A or A = A
互补律A and not A = 0? ? ? ? A or not A = 1
还原律not not A = A
交换律A and B = B and A? ? ? ? A or B = B or A
结合律A and (B and C) = (A and B) and C
A or (B or C) = (A or B) or C
分配律A and (B or C) = A and B or A and C
A or B and C = (A or B) and (A or C)
前面一个式子很容易想到,后一个式子要转2个弯:
A or B and C = A and (1 or B or C) or B and C = A and A or A and B or A and C or B and C = (A or B) and (A or C)
反演律not (A and B) = not A or not B
not (A or B) = not A and not B
反演律又称“摩根定律”、“德·摩根定律”。
吸收律A or A and B = A????????A and (A or B) = A
吸补律A or not A and B = A or B
有没有注意到交换律、结合律、分配律(1)与代数中的运算律十分相像。
混合运算 与非运算not ( A and B)
或非运算not ( A or B)
与或非运算not ( A and B or C and D)
异或运算A and not B or not A and B , AB不相等结果为1。
1 and not 0 or not 1 and 0 = 1 0 and not 1 or not 0 and 1 = 1 1 and not 1 or not 1 and 1 = 0 0 and not 0 or not 0 and 0 = 0
同或运算A and B or not A and not B, AB相等结果为1。
1 and 0 or not 1 and not 0 = 0 0 and 1 or not 0 and not 1 = 0 1 and 1 or not 1 and not 1 = 1 0 and 0 or not 0 and not 0 = 1
两个逻辑变量A和B的异或运算和同或运算是互补关系。 可以理解为“异或非”即同或;“同或非”即异或。 Python没有定义异或和同或运算,在逻辑代数中分别表达为:A⊕B 、A⊙B。
【复习思考题】
1.? 一个整数n,判断它是奇数或者偶数的条件表达式分别是什么?
2. 一个三位整数n,写出它在个位十位百位上至少有两个1的条件表达式。
3. 已知 max(a, b)表示a,b之大者,怎么表示三角形三边的必要条件?
4.*证明吸收律、吸补律的正确性。
5.*写出?A⊕B⊕C 的Python表达式。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #python少儿入门 #a #b