专栏首页未闻Code一日一技:为什么Python中“2==2>1”结果为True

一日一技:为什么Python中“2==2>1”结果为True

在Python中,你可能会发现这样一个奇怪的现象:

>>> 2 == 2 > 1
True
>>> (2 == 2) > 1
False
>>> 2 == (2 > 1)
False

为什么会出现 2==2>1的结果为True?如果说这是运算符的优先级问题,那么后两个式子为什么又都是False?

实际上这涉及到了Python的 链式对比(ChainedComparisons)。在其他语言中,有一个变量 x,如果要判断x是否大于1,小于5,可能需要这样写代码:

if (x > 1 and x < 5)

但是在Python中,可以这样写代码:

if 1 < x < 5

Python能够正确处理这个链式对比的逻辑。回到最开始的问题上, ==等于符号和 <小于符号,本质没有什么区别。所以实际上 2==2>1也是一个链式对比的式子,它相当于 2==2and2>1。此时,这个式子就等价于 TrueandTrue。所以返回的结果为True。

关于链式对比,可以看官方文档:https://docs.python.org/3/reference/expressions.html#comparisons

本文分享自微信公众号 - 未闻Code(itskingname)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 0473-如何使用Python3访问Kerberos环境的Hive和Impala

    随着Hadoop平台的流行,越来越多的开发语言访问Hadoop平台的组件,比较常见的Java、Scala、Python、R等。在前面的多篇文章中Fayson介绍...

    Fayson
  • Python与机器学习算法频道,文章和精华资料一键get

    以上,公众号后台,回复对应关键词,即可获取资料。希望能方便大家查阅,更多资料和原创好文,敬请期待。

    double
  • 如何在交互式环境中执行Python程序

    相信接触过Python的小伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,...

    Python进阶者
  • 4种更快更简单实现Python数据可视化的方法

    数据可视化是数据科学或机器学习项目中十分重要的一环。通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且创建可视化确实可以使分析的...

    机器之心
  • 利用Python网络爬虫采集天气网的实时信息—BeautifulSoup选择器

    相信小伙伴们都知道今冬以来范围最广、持续时间最长、影响最重的一场低温雨雪冰冻天气过程正在进行中。预计,今天安徽、江苏、浙江、湖北、湖南等地有暴雪...

    Python进阶者
  • Python堆排序之heapq

    heapq模块实现了Python中的堆排序,并提供了有关方法。让用Python实现排序算法有了简单快捷的方式。

    小歪
  • Python带我飞:50个有趣而又鲜为人知的Python特性

    Python, 是一个设计优美的解释型高级语言, 它提供了很多能让程序员感到舒适的功能特性。但有的时候, Python 的一些输出结果对于初学者来说似乎并不是那...

    新智元
  • 一篇文章助你理解Python2中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系。下面...

    Python进阶者
  • 20个堪称神器的Linux命令行软件

    3.mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。

    昱良
  • JavaScript获取本机浏览器UA助力Python爬取糗事百科首页

    使用Python编写爬虫时,经常会遇到反爬机制,例如网站要求必须使用浏览器访问。就像下面的403错误:

    Python小屋屋主

扫码关注云+社区

领取腾讯云代金券