CSDN的问答专栏里,经常会出现一些有趣的问题。比如,刚刚,有人问了这样一个问题:
这原本不是一个有难度的问题,偏偏有人带偏了节奏。第一个回答说:5>4是True,是个布尔型,前面的5跟布尔型比较,需要先转成布尔型,5转布尔型也是True,两个True自然相等,所以结果是True。 接着,这位仁兄又补充说:不信你可以试试 0==5>4,结果肯定是False。
如果不仔细思考,而是按照这位仁兄的理解去验证的话,结果还真和他说的完全一致。
>>> 5 == 5 > 4 True >>> 0 == 5 > 4 False
但是,这位仁兄的解释是经不起推敲的。比如,1转布尔型也是True,但1==5>4的结果也是False。
>>> 1 == 5 > 4 False
实际上,这个问题第一个答案的错误,根本在于将55>4理解成了运算优先级的问题。正确的解释是,55>4,既不是(55)>4,也不是5(5>4),而是5==5 and 5>4,其结果自然是True。
Python里面类似的写法有很多,比如,abc,等价于ab and bc,判断abc是否两两相等;a>b>c,等价于a>b and b>c,判断b是否位于ac之间。
怎么样?这个问题的要点,你get到了吗?
如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣可以进到806549072,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术