Python 提供了 bool 类型来表示真(对)或假(错),比如常见的 5 > 3 比较算式,这个是正确的,在程序世界里称之为真(对),Python 使用 True 来代表;再比如 4 > 20 比较算式,这个是错误的,在程序世界里称之为假(错),Python 使用 False 来代表。

由此可见,bool 类型就是用于代表某个事情的真(对)或假(错),如果这个事情是正确的,用 True 代表;如果这个事情是错误的,用 False 代表。

比较运算符用于判断两个值(这两个值既可以是变量,也可以是常量,还可以是表达式)之间的大小,比较运算的结果是 bool 值(True 代表真,False 代表假)。

Python 支持的比较运算符如下:

>:大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False。

>=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False。

<:小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False。

<=:小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False。

==:等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False。

!=:不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False。

is:判断两个变量所引用的对象是否相同,如果相同则返回 True。

is not:判断两个变量所引用的对象是否不相同,如果不相同则返回 True。

下面程序示范了比较运算符的使用:

# 输出True

print("5是否大于 4:", 5 > 4)

# 输出False

print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)

# 输出True

print("20是否大于等于20.0:", 20 >= 20.0)

# 输出True

print("5和5.0是否相等:", 5 == 5.0)

# 输出False

print("True和False是否相等:", True == False)

上面程序简单示范了 Python 比较运算符的功能和用法。

Python 的两个 bool 值分别是 True 和 False,但实际上 True 也可被当成整数 1 使用,False 也可被当成整数 0 使用。也就是说,True、False 两个值完全可以参与各种算术运算。例如如下代码:

# 输出True

print("1和True是否相等:", 1 == True)

# 输出True

print("0和False是否相等:", 0 == False)

print(True + False) # 输出1

print(False - True) # 输出-1

关于 == 与 is 看上去很相似,但实质上有区别,== 只比较两个变量的值,但 is 要求两个变量引用同一个对象。看如下代码:

import time

# 获取当前时间

a = time.gmtime()

b = time.gmtime()

print(a == b) # a和b两个时间相等,输出True

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 了。

python布尔类型运算_Python bool类型和比较运算符(入门必读)相关推荐

  1. python布尔类型运算_Python对象类型及其运算方法(详解)

    基本要点: 程序中储存的所有数据都是对象(可变对象:值可以修改 不可变对象:值不可修改) 每个对象都有一个身份.一个类型.一个值 例: >>> a1 = 'abc' >> ...

  2. python布尔测试对象_python布尔类型和逻辑运算

    布尔类型 python中True表示真,False表示假,它们是布尔类型:1 2>>> type(True) 在python中,bool的True和False是数值1和0的字符串表示 ...

  3. python提供的数字类型分为_Python数字类型介绍

    数据类型介绍 Python数据类型可分为:数字型和非数字型 数字型 整型(int) 浮点型(float) 布尔型(bool) 真(True) 假(False) 复数型(complex) 主要用于科学计 ...

  4. python序列类型有_Python数值类型和序列类型

    int.float.bool这三个数值类型和常用序列类型的定义和使用 数值类型的基本计算 序列类型的索引取值.切片.成员运算等序列类型的通用操作 complex(复数).decimal(定点数).ma ...

  5. python列表实现原理_Python动态类型实现原理及过程解析

    在python中,我们使用变量时,并没有声明变量的存在和类型.类型是在运行过程中自动决定的. a = 3 python将会执行三步去完成上面这个请求. 1.创建一个对象代表3 2.创建一个变量a,如果 ...

  6. python语言的类型是_Python语言类型

    Python是一门动态解释型的强类型语言. 对这句话进行解析,语言分为动态的和静态的,编译型和解释型的,强类型的和弱类型的语言之分. 下面对三种不同维度的类型的语言进行解释: 1.编译型和解释型 差别 ...

  7. python mypy类型检查_Python中类型检查的详细介绍

    前言 大家都知道Python 是一门强类型.动态类型检查的语言.所谓动态类型,是指在定义变量时,我们无需指定变量的类型,Python 解释器会在运行时自动检查. 与静态类型语言(如 C 语言)相比,这 ...

  8. python中类的构成_Python中类型关系和继承关系实例详解

    本文详细介绍了Python中类型关系和继承关系.分享给大家供大家参考.具体分析如下: 如果一个对象A持有另一个对象B的ID,那么检索到A之后就可以检索到B,我们就说存在一个A到B的导航.这种导航关系使 ...

  9. python定义整数型变量_Python变量类型有哪些?Python变量声明介绍

    变量不过是用于定义,存储和对输入数据执行操作的编程元素.Python变量类型有哪些?Python变量有四种不同类型,它们是Integer,LongInteger,Float和String.整数用于定义 ...

最新文章

  1. Cisco HSRP热备份路由器协议配置
  2. 网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法
  3. 把普通的git库变成bare库
  4. linux内核中kset是什么意思,Linux内核之设备驱动-底层数据结构kobject/kset
  5. 用VSTS进行网站压力测试
  6. 惊天后续 | 不仅可看照片和短信, 利用 iOS 漏洞无需密码还能打电话、发短信!...
  7. noip模拟赛 猜数字
  8. CentOs7安装Oracle11g中的坑
  9. MAC使用find命令的正确办法
  10. 单片微型计算机原理及应用第三版课后答案,单片微型计算机原理及应用 - 课后习题答案 - 山东理工...
  11. 如何用MFC做漂亮的界面
  12. K60学习笔记(二)——FTM多功能定时器模块
  13. 侠客行,我是谁,谁是我
  14. 一文了解plc编程、电脑编程、手机APP编程、组态编程、云编程(下)
  15. php导出合同模板到excel
  16. 零管理费的基金你见过吗?基金行业价格战预演
  17. MIPS,程序的CPI,时钟周期计算(主频的计算)
  18. ktv管理系统_著作权大数据管理平台开始公测 或将解决KTV行业版权困扰
  19. ubuntu安装deb文件包
  20. windous 向日葵连接 ubuntu 向日葵失败

热门文章

  1. POJ-Prime Gap 素数筛选+二分查找
  2. linux_scp 远程复制不需要输入密码
  3. 服务器上使用docker安装部署禅道zentao
  4. maven构建java web项目(idea开发)
  5. js用函数实现输出100以内与7有关的数_走近(javascript, 函数式)
  6. Kubernetes(十七) 基于NFS的动态存储申请
  7. js调用android本地java代码
  8. 记录下最近使用到的sql语句
  9. C#LeetCode刷题之#706-设计哈希映射(Design HashMap)
  10. 【缓存】redis的基本使用