python中的运算优先级和逻辑短路

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 阶,最后刚好一阶也不剩。
写一段代码求出该阶梯的最终数量。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值