首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一日一技:为什么Python中“2==2>1”结果为True

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

作者头像
青南
发布于 2019-01-23 06:23:34
发布于 2019-01-23 06:23:34
1.3K00
代码可运行
举报
文章被收录于专栏:未闻Code未闻Code
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> 2 == 2 > 1
True
>>> (2 == 2) > 1
False
>>> 2 == (2 > 1)
False

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if (x > 1 and x < 5)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 1 < x < 5

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
不可思议,Python 的链式操作竟然可以这样
学习 Python 的过程中,有没有让你出乎意料的情景,在细品之后,又觉得情理之中呢?(有的话文末留言哈)我就遇到过,初见时不可思议,仔细学习之后,又觉得豁然开朗,Python 的链式操作就是这样的场景。
somenzz
2021/11/12
3210
不可思议,Python 的链式操作竟然可以这样
细节见真知
Python 虽然简单易学,但要真正掌握和精通也不是件容易的事情,比如本文将要分享的这些有趣的特性,如果你一眼就看穿了问题的本质,说明你已经非常精通了。如果没有那就多看几次,细节见真知,敲敲代码验证下,对于提升 Python 编程技能,非常有效。
somenzz
2020/11/30
5070
一日一技:使用装饰器简化大量if判断(二)
于是,今天我们就来看看大于小于应该怎么来判断。为了实现我们今天的目标,有两个前置知识需要掌握,一个是Python自带的operator模块,另一个是偏函数。
青南
2022/04/07
1K0
一日一技:使用装饰器简化大量if判断(二)
一日一技:用Python如何正确开发命令行交互程序
这种方式确实可以达到目的。但 Python 实际上有专门用来实现这个目的的模块,叫做cmd。这是 Python 自带的。
青南
2020/02/19
4.3K0
一日一技:用Python如何正确开发命令行交互程序
一日一技:在 Python 中,is 并不一定包含==
这是因为 == 只比较值,而 is 同时比较值和内存地址。简单来说:你左手边有一个人,右手边有一个人,两个人长得一模一样,那么左手边的人==右手边的人;你左手边有一个人,一分钟以后这个人走到了你的右手边,那么刚才左手边的人 is 现在右手边的人
青南
2019/09/29
4760
❓ 你看不懂的 Python 写法
有那么一瞬间,对自己多年的 Python 语法产生了怀疑, 0xfor 是一个什么新的循环关键字?
布鲁斯鱼
2022/11/02
4000
24 个好用到爆的 Python 实用技巧!
作为一名数据工作者,我们每天都在使用 Python处理大多数工作。在此过程中,我们会不断学到了一些有用的技巧和窍门。
数据STUDIO
2021/11/17
6960
有趣的 Python 特性 4 | 碰到这种「链式」操作就要小心了。
Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预想的结果大相径庭,这个对于初学者来说难以理解,但是在理解它们以后又会觉得是这么的有意思,所以我准备了这个「有趣的 Python 特性」系列,写一些我碰到或看到的一些你所不知道的「奇葩」,这里面会涉及到在 Python2 和 Python3 中的异同,希望大家能从学习的过程中体会到真正的乐趣。
编程文青李狗蛋
2019/11/07
2780
一日一技:用Python做游戏有多简单
我520的公众号图片发了以后,有很多同学问我这个游戏是怎么做的,难不难。我就用两篇文章来介绍一下,如果使用Python做游戏。
青南
2022/05/23
1.5K0
一日一技:用Python做游戏有多简单
C#OOP之二 变量和表达式
不像书面英语和其他语言。但是,在C#编程中,使用的样式是比较清晰的,不用花太多的力气就可以编写出可读性很强的代码。
张哥编程
2024/12/13
2110
C#OOP之二 变量和表达式
必须要了解的Python关键词
每种编程语言都会有一些特殊的单词,称为关键词。对待关键词的基本要求是,你在命名的时候要避免与之重复。本文将介绍一下Python中的关键词。关键词不是内置函数或者内置对象类型,虽然在命名的时候同样也最好不要与这些重名,但是,毕竟你还可以使用与内置函数或者内置对象类型重名的名称来命名。关键词则不同,它是不允许你使用。
老齐
2020/06/24
4570
Python3 | 练气期,操作运算符,优先级顺序!
描述:上篇介绍了Python3编程基础数据类型,本篇将介绍Python3编程中的有那些运算符以及操作运算符优先级顺序,这也是在Python3编程中非常重要的一个部分,下来就跟随作者快速过一遍,加深一点印象吧!
全栈工程师修炼指南
2024/07/29
2760
Python3 | 练气期,操作运算符,优先级顺序!
一日一技:loguru 如何把不同的日志写入不同的文件中
因为logger_1、logger_2和logger_3跟logger指向的是同一个对象。这四个”变量”只不过是这个对象的名字而已。所以他的代码本质上就是给logger这个名字对应的对象绑定了3个文件。所以自然每个文件的内容都是完全一样的。
青南
2020/09/29
9.5K1
一日一技:loguru 如何把不同的日志写入不同的文件中
一日一技:更优雅地在 Python 中写日志
原来我们在 Python 中写日志,使用的是 Python 自带的 logging 模块,要实现既在终端输出,又能写文件,并且日志文件还能 rotate ,代码需要十多行:
青南
2019/10/06
2.9K0
精选26个Python实用技巧,想秀技能先Get这份技术列表!
【导读】Python 虽然是脚本语言,但是因为其易学,迅速成为科学家的工具,从而积累了大量的工具库、架构,人工智能涉及大量的数据科学,用 Python 是很自然的事。磨刀不误砍柴工,要入门人工智能领域,就必须掌握 Python。让我们来看看 Peter Gleeson 整理的 26 个 Python 有用的技巧。
CDA数据分析师
2018/09/17
7950
精选26个Python实用技巧,想秀技能先Get这份技术列表!
【Python零基础到入门】Python基础语法篇——运算符 学习
=是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:
呆呆敲代码的小Y
2021/11/29
3890
【Python零基础到入门】Python基础语法篇——运算符 学习
一日一技:在 Python 里面,如何正确判断两个浮点数相等
在以前的文章里面,我们已经讲到过,不仅仅是 Python,很多编程语言里面,浮点数都不一定是精确的。最常被用来作为例子的是:0.1 + 0.2。在 Python 里面,这个加法的结果如下图所示:
青南
2019/12/16
9.8K0
Python基础之运算符
1 算术运算符2 位运算符3 比较运算符4 赋值运算符5 身份运算符6 成员运算符7 逻辑运算符
用户7886150
2020/11/26
6980
用is探索python的隐藏机制
友情提示:本文可能让常年管用python的程序猿感到一丝卧槽以及来自UC震惊部的刷三观问候。
十四君
2019/11/27
5910
日拱一卒,伯克利CS61A,居然有Lisp这样的语言……
我们继续来肝伯克利CS61A,今天我们看的是作业8。这一次的作业有些特殊,不再是基于Python,而是一门全新的语言Lisp。
TechFlow-承志
2022/09/21
1.1K0
日拱一卒,伯克利CS61A,居然有Lisp这样的语言……
推荐阅读
相关推荐
不可思议,Python 的链式操作竟然可以这样
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档