python链式对比
参考 https://www.cnblogs.com/shanghongyun/p/10519579.html
为什么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。
注:True相当于1,False相当于0
原文来自:https://cloud.tencent.com/developer/article/138694
python链式对比的更多相关文章
- Python链式赋值执行顺序及执行方式的证明
		专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在<关于Python链式赋值的赋值顺序问题& ... 
- 关于Python链式赋值的赋值顺序问题
		在<第4.7节 Python特色的序列解包.链式赋值.链式比较>一文中,老猿这样介绍的: 链式赋值是用一行语句将多个变量赋值为同一个值,语法如下: 变量1=变量2=变量n=赋值表达式 该语 ... 
- [Python]解决python链式extend的技巧
		众所周知python中的list是可以extend的,功能 旨在将两个list合并成一个.譬如[1,2,3].extend([4,5,6])=[1,2,3,4,5,6] 假如有一个list的list, ... 
- Python 笔试集(1):关于 Python 链式赋值的坑
		前言 Python 的链式赋值是一种简易型批量赋值语句,一行代码即可为多个变量同时进行赋值. 例如: x = y = z = 1 链式赋值是一种非常优雅的赋值方式,简单.高效且实用.但同时它也是一个危 ... 
- 由反转链表想到python链式交换变量
		这两天在刷题,看到链表的反转,在翻解体思路时看到有位同学写出循环中一句搞定三个变量的交换时觉得挺6的,一般用的时候都是两个变量交换(a,b=b,a),这种三个变量的交换还真不敢随便用,而且这三个变量都 ... 
- 记python 链式比较的坑
		前两天,python交流群里有人问: “x”<"y"==True 这个表达式输出的是什么,脑子都没动,就觉得应该是True 居然被否定了!立马在命令行里敲了一下,准备用事实打 ... 
- python链式调用REST API把参数放到URL中
		需求格式:GET /users/:user/repos 程序: class Chain(object): def __init__(self,path=''): self._path=path def ... 
- python和go对比字符串的链式处理
		一.什么是链式处理 对数据的操作进行多步骤的处理称为链式处理,链式处理器是一种常见的编程设计,链式处理的开发思想将数据和操作拆分,解耦,让开发者可以根据自己的技术优势和需求,进行系统开发,同时将自己的 ... 
- Javascript、C#、php、asp、python 等语言的链式操作的实现
		一.什么是链式操作 把需要的下一步操作的对象通过上一步操作返回回来.使完成某些功能具有持续性. 二.链式操作优点 代码更精简优雅.链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定: 链式操作应 ... 
随机推荐
- [LeetCode] 108. Convert Sorted Array to Binary Search Tree 把有序数组转成二叉搜索树
			Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ... 
- Python--代码1(接口测试:测试用例从数据库读取写到yaml文件中)
			一. 从数据库中读取全部接口,并写入yaml文件 数据库中的数据存储格式如下图: import pymysql import os import json # from ruamel import y ... 
- 谈nginx配置
			近日看<许式伟的架构课>中一段关于系统分解的描述所有思考,略记于此. 原文片段如下: 系统设计,简单来说就是 "对系统进行分解" 的能力.这个阶段核心要干的事情,就是明 ... 
- Go 协程
			Go 协程 协程与传统的系统级线程和进程相比,协程的优势在于其"轻量级",可以轻松创建上百万个协程而不会导致系统资源衰竭,所以协程也叫做轻量级线程. 在Go中goroutine就是 ... 
- 【LEETCODE】46、999. Available Captures for Rook
			package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ... 
- python_二叉树简单实现
			今日头条面试题,先做下: 二叉树代码实现 class Node: def __init__(self,item): self.item = item self.child1 = None self.c ... 
- GZOI/GXOI2019
			陆陆续续做完了-- 与或和(单调栈) 这是一道一眼题-- 看到位运算,按位考虑贡献.对于每一位,将矩阵中的元素变为"当前元素的这一位是否为\(1\)",那么原矩阵变为\(01\)矩 ... 
- Linux sftp命令
			sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的网络的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 ... 
- 2.6_Database Interface JDBC及驱动类型
			JAVA语言参考ODBC,设计专用的数据库连接规范JDBC(JAVA Database Connectivity).目标是让Java开发人员在编写数据库应用程序时,可以有统一的接口,不依赖特定数据库A ... 
- Java调用WebService方法总结(6)--XFire调用WebService
			XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ... 
