0.请问下面表达式的值是什么?
3 == not 5
答:报错.由于 not 运算符的优先级比 == 运算符低,所以表达式是先运算 == 的,即先求出 3 == not 的结果,很明显,Python 彼时很懵逼。
1.请问下面表达式的值是什么?
3 or 5 and 0
答:值为3.由于 or 运算符的优先级比 and 运算符低,所以表达式的运算顺序是 3 or (5 and 0),即 3 or 0,结果为 3。
2. 请问下面表达式的值是什么?
3 and 5 + True or False
答:5 + 1 = 6.基于“短路逻辑”(从左往右,只有当第一个操作数的值无法确定逻辑运算的结果时,才对第二个操作数进行求值),3 and 5 的结果为 5。另外,True 和 False 参与运算是是作 1 和 0 使用的,所以结果为 6。
3. 请问下面表达式的值是什么?
0 and not 1 or not 2 and 3 or 4 and not 5
答:0 and 0 or 0 and 3 or 4 and 0
=0
4. 请问下面表达式的值是什么?
1 == 2 < 3
答:False.这个链式比较,拆出来是 1 == 2 and 2 < 3,而不是先 (1 == 2) < 3,得到的是两个截然不同的结果。
5.请将下面的链式比较转换为使用 and 的普通比较。
1 < 2 > 3 < 4 < 5
答:1<2 and 2>3 and 3<4 and 4<5
6.爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上 2 阶,最后剩 1 阶;若每步上 3 阶,最后剩 2 阶;若每步上 5 阶,最后剩 4 阶;若每步上 6 阶,最后剩 5 阶;只有每步上 7 阶,最后刚好一阶也不剩。
写一段代码求出该阶梯的最终数量。