python中true默认为1_为什么Python中“2==2>1”结果为True

本文解析了Python中链式比较的原理,例如2==2>1为何返回True,以及(2==2)>1为何返回False。文章还介绍了Python中处理字符串、Unicode及一些常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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能够正确处理这个链式对比的逻辑。回到最开始的问题上, ==等于符号和 1也是一个链式对比的式子,它相当于 2==2and2>1。此时,这个式子就等价于 TrueandTrue。所以返回的结果为True。

注:True相当于1,False相当于0

原文来自:https://cloud.tencent.com/developer/article/1386941

python中判断readline读到文件末尾

fp = open('somefile.txt') while True: line = fp.readline() if not line: #等价于if line == "": ...

&lbrack;转&rsqb;Python中的str与unicode处理方法

早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

python中的Ellipsis

...在python中居然是个常量 print(...) # Ellipsis 看别人怎么装逼 https://www.keakon.net/2014/12/05/Python%E8%A3%85%E9 ...

python中的默认参数

https://eastlakeside.gitbooks.io/interpy-zh/content/Mutation/ 看下面的代码 def add_to(num, target=[]): tar ...

Python中的类、对象、继承

类 Python中,类的命名使用帕斯卡命名方式,即首字母大写. Python中定义类的方式如下: class 类名([父类名[,父类名[,...]]]): pass 省略父类名表示该类直接继承自obj ...

python中的TypeError错误解决办法

新手在学习python时候,会遇到很多的坑,下面来具体说说其中一个. 在使用python编写面向对象的程序时,新手可能遇到TypeError: this constructor takes no ar ...

python中的迭代、生成器等等

本人对编程语言实在是一窍不通啊...今天看了廖雪峰老师的关于迭代,迭代器,生成器,递归等等,word天,这都什么跟什么啊... 1.关于迭代 如果给定一个list或tuple,我们可以通过for循环来 ...

python2&period;7高级编程 笔记二(Python中的描述符)

Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解.这些特性包括列表/集合/字典推导式,属性(property).以及装饰器(decorator).对于大部分特性来说,这些" ...

python cookbook 学习系列(一) python中的装饰器

简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓 ...

随机推荐

javascript数据结构-数组

github博客地址 简介 数组是最简单的数据结构,javascript语言也很早就原声支持了数组Array数据类型,和其他语言略微不同的是:js中的数组可以存储不同类型的值,看起来很厉害的样子,但是 ...

Robot Framework &plus; Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试

最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具软件的研发工作,积累了一些经验,在此与大家做一下分享,也算是做 ...

django 自定义表单

创建一个1.html的东西

{{form.as_p}}

Java 基础知识总结 &lpar;四、String&rpar;

四.String public final class String extends Object implements Serializable, Comparable, ...

sql sever基本语法总结

一.数据库导入表 1.先用sql语句创建相应的表,包括表的字段和字段类型 2.导入数据,选择相应的表名,不带'$'符号的表名 二.创建数据库 create datatable 数据库名 三.查看表里的 ...

webpack学习笔记——sourcemap&lpar;使用webpack打包的项目如何调试代码&rpar;

[webpack]devtool里的7种SourceMap模式是什么鬼? 里面详细介绍了7种模式的区别,和建议使用. webpack sourcemap 选项多种模式的一些解释 两篇文章大同小异,第一 ...

&lbrack;leetcode-117&rsqb;填充每个节点的下一个右侧节点指针 II

(1 AC) 填充每个节点的下一个右侧节点指针 I是完美二叉树.这个是任意二叉树 给定一个二叉树 struct Node { int val; Node *left; Node *right; Nod ...

深入浅出的webpack构建工具---AutoDllPlugin插件&lpar;八&rpar;

深入浅出的webpack构建工具---AutoDllPlugin插件(八) DllPlugin插件能够快速打包,能把第三方依赖的文件能提前进行预编译打包到一个文件里面去.提高了构建速度.因为很多第三方 ...

FastList使用

之前使用的组件是ListView,当时要添加一个下拉刷新,上拉加载的功能,所以对ListView做了一些封装,但是后来看官方文档,不建议再使用ListView,因为效率问题,做过Android的朋友都 ...

关于ArrayList和List的区别

ArrayList可以存放不同类型的数据,第一个可以是int,第二个可以是double等等 而List存放的是单一的数据类型的数据用法如下: List xx = n ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值