比较运算符,也成关系运算符,用于对常量、变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回 True;反之,则返回 False。

Python 支持的比较运算符如表 1 所示。

表 1 Python 比较运算符
比较运算符 功能
> 大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False
>= 大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False
< 小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False
<= 小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False
== 等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False
!= 不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False
is 判断两个变量所引用的对象是否相同,如果相同则返回 True
is not 判断两个变量所引用的对象是否不相同,如果不相同则返回 True

下面程序示范了比较运算符的基本用法:

>>> print("5是否大于 4:", 5 > 4)
5是否大于 4: True
>>> print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)
3的4次方是否大于等于90.0: False
>>> print("20是否大于等于20.0:", 20 >= 20.0)
20是否大于等于20.0: True
>>> print("5和5.0是否相等:", 5 == 5.0)
5和5.0是否相等: True
>>> print("True和False是否相等:", True == False)
True和False是否相等: False
>>>

比较运算符 == 和 is 的区别

初学 Python,大家可能对 is 比较陌生,很多人会误将它和 == 的功能混为一谈,但其实 is 与 == 有本质上的区别,完全不是一码事儿。

== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象,例如:

  1. import time
  2. # 获取当前时间
  3. a = time.gmtime()
  4. b = time.gmtime()
  5. print(a == b) # a和b两个时间相等,输出True
  6. print(a is b) # a和b不是同一个对象,输出False

上面代码中 a、b 两个变量都代表当前系统时间,因此 a、b 两个变量的时间值是相等的(代码运行速度很快,能保证是同一时间),故程序使用“==”判断返回 True。但由于 a、b 两个变量分别引用不同的对象(每次调用 gmtime() 函数都返回不同的对象),因此a is b返回 False。

那么,如何判断两个变量是否属于一个对象呢?Python 提供了一个全局的 id() 函数,它可以用来判断变量所引用的对象的内存地址(相当于对象在计算机内存中存储位置的门牌号),如果两个对象所在的内存地址相同(相当于它们住在同一个房间内,计算机同一块内存在任一时刻只能存放一个对象),则说明这两个对象其实是同一个对象。

由此可见,is 判断其实就是要求通过 id() 函数计算两个对象时返回相同的地址。例如,使用 id() 函数判断上面的 a、b 两个变量:

print(id(a))
print(id(b))

从运行结果中将会看到 a、b 两个变量所引用的对象的内存地址是不同的,这样通过 is 来判断 a、b 两个变量自然也就输出 False 了。

再举一个例子:

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> id(a)
2680257978480
>>> id(b)
2680257978480
>>> a is b
True

24.Python比较运算符(关系运算符的更多相关文章

  1. java入门---运算符&算术运算符&自增自减运算符&关系运算符&位运算符

        计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 ...

  2. 解释一下python中的关系运算符

    关系运算符用于比较两个值 1.小于号,如果左边的值较小,则返回Trueprint('hi'<'Hi')#False 2.大于号,如果左边的值较大,则返回Trueprint(1.1+2.2> ...

  3. javascript运算符——关系运算符

    × 目录 [1]恒等 [2]相等 [3]大于[4]小于 前面的话 关系运算符用于测试两个值之间的关系,根据关系是否存在而返回true或false,关系表达式总是返回一个布尔值,通常在if.while或 ...

  4. C语言基础学习运算符-关系运算符

    比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是 ...

  5. 算数运算符& 关系运算符

    java中的算数运算符 + - * / % ++ -- + +: 加法运算符 - : 减法运算符 *: 乘法运算符 / : 除法运算符 注意: 除数不能为0,除数为0会报出异常 整数运算默认得到整数, ...

  6. python的比较关系运算符和逻辑运算符

    比较运算符 运算符 描述 示例 == 检查两个操作数的值是否相等,如果是则条件变为真. 如a=2,b=2则(a == b) 为 true. != 检查两个操作数的值是否相等,如果值不相等,则条件变为真 ...

  7. 【Shell脚本学习10】Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等

    Bash 支持很多运算符,包括算数运算符.关系运算符.布尔运算符.字符串运算符和文件测试运算符. 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最 ...

  8. 十一、 BOOL类型、分支结构和关系运算符

    BOOL类型:表示非真即假.只有两个值:YES和NO,而二进制只识别二进制数,所以,将YES替换为“1”,NO替换为“0” BOOL数据类型占一字节的空间内存 BOOL数据类型输出为:%lu:输入为: ...

  9. shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符

    shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...

  10. shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符

    注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Es ...

随机推荐

  1. 史上最全的MySQL高性能优化实战总结!

    1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰.在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多 ...

  2. 11 Django实现WebSocket

    因为需要实时显示状态的需求,想到了websocket,但是Django原生不支持websocket,后来搜索到了chango-channels项目,可以实现次需求. 一.Channels 官方文档 二 ...

  3. Fiddler抓取手机APP程序数据包

    1.下载并安装Fiddler 下载地址:https://www.telerik.com/download/fiddler 2.设置Fiddler可监听远程通讯 前提条件:需要监听的手机和Fiddler ...

  4. MySQL 安装与基本概念

    Mysql版本 第一条产品线:5.0.xx及升级到5.1.xx的产品系列,这条产品线继续完善与改进其用户体验和性能,同时增加新功能,这条路线可以说是MySQL早期产品的延续系列,这一系列的产品发布情况 ...

  5. layui 数据表格自适应高度

    添加css .layui-table-cell { height: inherit; } .layui-table-cell { height: inherit;}

  6. 十一,k8s集群访问控制之ServicAccount

    目录 认证安全 连接Api-Server的两类账号 ServiceAccount 创建 使用admin 的SA 测试 URL访问kubernetes资源 APIserver客户端定义的配置文件 kub ...

  7. 8.8.ZooKeeper 原理和选举机制

    1.ZooKeeper原理 Zookeeper虽然在配置文件中并没有指定master和slave但是,zookeeper工作时,是有一个节点为leader,其他则为follower,Leader是通 ...

  8. 安装docker fastdfs

    # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件 ...

  9. Java语言基础(10)

    1 方法(三) 案例:Demo1 import java.util.Scanner; public class Demo1 { static int min(int num1,int num2){ i ...

  10. The basic concept of information theory.

    Deep Learning中会接触到的关于Info Theory的一些基本概念.