python的数据类型有好多个,前边写过字符串、整数和浮点数这三种。

本节来整理另一种简单数据类型--布尔值

布尔值(bool)

布尔值和其数据值

计算机可以用数据进行判断,若判断为真则执行特定条件中的代码块。若不为真则执行相反的指定条件内的代码块或不执行任何内容。

这种数据就是布尔值。其数据类型在python中标记为bool。

布尔值其值比较特殊,不像字符串、整数那些,是用户自定的、无固定值的。他有固定的值,且只有两个:True、False(⚠️首字母大写)。

示例代码

下列代码分别打印True和False

print(3>1) # True

print(3<1) # False

其中,True表示真,说明条件成立。正如上例中,数字3是大于1的,判断的结果为“真”

相反,False表示假,说明条件不成立。正如上例中,数字3不小于1,判断的结果为“假”

而只有当条件判断为True(即条件成立)时,if和while后面的子句才会执行下去。

比如下边的代码

if True:

print('这句话肯定会被执行')

if False:

print('这句话肯定不会被执行')

⚠️特别的,在使用while时,如果当条件永远正确,那么就会出现循环一直执行停不下来、造成死循环现象。如下边的代码(千万不要轻易运行)

while 3 > 1:

print('糟了,是死循环的感觉!')

3>1的判断永远成立,得到True后,while一直执行出现死循环。

布尔运算

什么是布尔运算

根据布尔值数据所做的逻辑判断,叫做布尔运算。

下例中,3>1就是布尔运算。

print(3>1)

布尔运算产生布尔值

试想一下,为什么我们这么写,if条件就执行了呢?

if 5 > 3:

print('布尔运算产生布尔值')

if语句后边条件判断语句需要一个布尔值,来指定判断后的逻辑,如果判断为真,则将执行if后的代码块。

计算机会先做一次布尔运算,判断5是否大于3。判断结果是5>3这个布尔运算返回了布尔值——True,条件成立if语句运行。

布尔运算的三种方式

数值比较 - 比较运算符

数值运算 - 真假判断

布尔值运算 - 逻辑运算符

数值比较 - 比较运算符

python中的比较运算符

比较运算符

含义

备注

等于

==

判断数据和类型

不等于

!=

英文感叹号

大于

>

小于

<

大于等于

>=

小于等于

<=

基本上就是小学数学!

::: tip ⚠️等于运算符(==)

1、需要两个等于号。一个等于号(=)是赋值的作用

2、不仅仅只判断左右两边的值是否相等,还会判断符号左右的数据类型是否一致。

比如print(3 == '3')就会因为两边数据类型不一致,进而返回False

:::

数值运算 - 真假判断

除了用数值比较作为语句的判断条件外,我们可以用一个数据/数值本身作为一个条件,直接进行真假判断。如下:

if 'False':

print('这段你觉得会打印吗?')

最后执行结果,就是打印了'这段你觉得会打印吗?'这句话。

原因是,字符串'False'在这里就是作为一个条件,被判断为真(True)。

在Python中被判定为假的数据是有限的,官方文档规定的。如下:

python中的假值表

序号

认定为假的值

含义

备注

1

False

布尔值中的假

2

0

整数0

3

None

数据类型NoneType

4

''

空字符串空串

里边有内容就为真 注意区别空串和空格字符串‘ ’

5

[]

空列表

里边有内容就为真,如[0]

6

{}

空字典

里边有内容就为真,如{boolVal: Flase}

除了上述“假”值,其他值都会被判断为“真”。

if False:

print('False值为假,这句话不会被执行。')

if 0:

print('整数0为假,这句话不会被执行。')

if None:

print('空值None为假,这句话不会被执行。')

if '':

print('空串为假,这句话不会被执行。')

if []:

print('空列表为假,这句话不会被执行。')

if {}:

print('空字典为假,这句话不会被执行。')

以上案例显示,各个数据本身作为一个条件时,会被判定为假,if后面的条件为假,计算机就都不会执行if的下一行代码。

⚠️相反的,注意区分下边这些值,看上去和假值很像,但是他们都是真

if 'False':

print('字符串"False"值为真,这句话会被执行。')

if '0':

print('字符串"0"值为真,这句话会被执行。')

if -1:

print('非0数字皆为真,这句话会被执行')

if 'None':

print('字符串"None"为真,这句话会被执行。')

if ' ':

print('空格字符串,不是空串!特别注意。空格字符串是真,这句话会被执行。')

# 可见,只要字符串不为空串,都为真。

if [0]:

print('列表不为空,条件为真,这句话会被执行。')

if {'boolVal': False}:

print('字典不为空,条件为真,这句话会被执行。')

⚠️特别注意。空格字符串不是空串!他的布尔值是真

布尔值运算 - 逻辑运算符

逻辑运算符有以下五种运算:

运算符

含义

备注

and

并且

or

或者

not

取反

in

属于

判断数据是否属于一个字典或列表

not in

不属于

同上,取反。判断不属于

篇幅比较大,整理到下边一个大模块中。

逻辑运算符

and - 与

and的计算逻辑

我自己学习js的并且(&&)时总结的顺口溜,同样适用于python中的并且(and):

# 关于判断规则

真真才为真

有假不算他

# 关于返回结果

真真得末尾

遇假返回假

解释:and左右的条件,都为真时,总的判断结果就为真。否则一旦左边或右边有假值,则整个结果都是假的。

如果两边都是真值,返回结果为最后的那个真值。

如果两边有假值,则返回第一个遇到的假值。

and案例

# 真真才为真 案例:

if 1 and 2:

print('真真返回结果:',1 and 2) # 真真返回结果: 2(返回最后的那个真值)

# 有假不算他 案例:

if 2 and None:

print('不成立')

else:

print('真假返回结果:',2 and None) # 真假返回结果: None(返回第一个遇到的假值)

if 0 and False:

print('条件不成立,这里不打印')

else:

print('假假返回结果:',0 and False) # 假假返回结果: 0(返回第一个遇到的假值)

# 两边表达式,左边有假,则返回结果是第一个假表达式的执行结果:

a = 1

b = 2

c = 3

d = 4

if a > b and c < d:

print('条件不成立')

else:

print('真假表达式返回结果:', a > b and c < d) # False (a>b的结果)

and对价值是零容忍的,只要有假、立马判定为假,谁说都不好使!

or - 或

or的计算逻辑

同样来一段我学习时的顺口溜:

# 关于判断规则

有真即为真

假假才算假

# 关于返回结果

有真返回真

假假返末尾

解释:or左右的条件,只要有一个为真时,总的判断结果就为真。

必须左、右两边都是假值时,整个结果才是假的。

如果两边都是真值、或者两边其中一边有一个真值,则返回结果为第一个遇到的真值。

如果两边都是假值,则返回最后的那个假值。

or的案例:

# 有真即为真 案例:

if 1 or 2:

print('真真返回结果:',1 or 2) # 真真返回结果: 1(返回第一个遇到的真值)

if 2 or None:

print('真假返回结果:',2 or None) # 真假返回结果: 2(返回第一个遇到的真值)

if None or 3:

print('真假返回结果:',None or 3) # 真假返回结果: 3(返回第一个遇到的真值)

# 假假才算假 案例:

if 0 or False:

print('条件不成立,这里不打印')

else:

print('假假返回结果:',0 or False) # 假假返回结果: False(返回最后的那个假值)

可以想象成or是对假值的容忍度很高,不监测到最后一个都为假,她是不会死心并直接判断为假值的。

not - 非

not表示翻转的意思。所谓取反,就是颠倒真假的意思。

not True就等于False,not False就等于True。

print(not True) # False

print(not False) # True

in - 属于

in用来判断一个元素是否在一堆数据之中

数据集合是列表的话,【in】和【not in】就可以用来判断变量在不在列表list里面(in在、not in不在)。

数据集合是字典的话,【in】和【not in】就可以用来判断字典中是否存在某个【键】(in在、not in不在):

myName = ['小石头', 'xing.org1^', 181, True]

dictName = {

'name': '小石头',

'age': 19,

'hobby': {

'it': ['css','js','python'],

'daily': [['music','tv'],['apple','pear']],

'sports': 'sleep'

}

}

print('小石头' in myName) # True 该字符串存在于列表中

print('gjf' in myName) # False

print('hobby' in dictName) # True

print('sex' in dictName) # False

not in - 不属于

与in相反,用来判断一个元素是否不在一堆数据之中

# 变量沿用in案例中的

print('小石头' not in myName) # False 该字符串存在于列表中,非要说不在那是错误的,返回假值。

print('gjf' not in myName) # True

print('hobby' not in dictName) # False

print('sex' not in dictName) # True

优先级

三者之间的优先级:() > not > and > or

类型查询 type()

数据类型和类型转换章节,提过type函数,他主要用于类型查询。

布尔类型作为数据类型中的一种,同样可以用type函数进行类型查询:

print(type(True)) #

print(type(False)) #

可以从打印结果看出来,布尔值的类型返回为。

布尔值判断 bool()

虽然我们有python中的假值表, 肉眼就能辨别真假值。

不过python也提供了bool()函数来帮助我们判断数据的真假。下边是使用案例:

以下皆打印False

print(1, bool(False))

print(2, bool(0))

print(3, bool(''))

print(4, bool(None))

print(5, bool([]))

print(6, bool({}))

以下皆返回True

print(1, bool('False'))

print(2, bool('0'))

print(3, bool(' '))

print(4, bool('None'))

print(5, bool([0]))

print(6, bool({'boolVal': False}))

print(7, bool('字符串除了空串都为真'))

print(8, bool(-1))

print(9, bool(1.3))

print(10, bool([False]))

思考题

一百遍“我真棒”

用布尔运算实现while循环重复执行100遍打印“我真棒”的任务

# 参考代码位于源代码files文件夹下对应章节的py文件中

本文使用 mdnice 排版

python逻辑型数据也叫布尔值_【python系统学习10】布尔值相关推荐

  1. python怎么返回布尔值_尝试从函数返回布尔值

    您需要将"return incomp1==True"替换为"return True".然后像这样调用door1函数"incomp1=door1(inc ...

  2. python表达式3and not5的值_表达式 3 and 5 的值为_学小易找答案

    [单选题]假如网络营销企业推出的产品正处于成长期,为了占有和扩大产品的市场分额,它应该重点关注的网络消费者群体是(). [简答题]知识价值有哪几种体现方式?各举一个例子. [单选题]旗帜广告和按钮广告 ...

  3. python的abs(3+4j)_表达式abs(3+4j) 的值为

    [单选题]import time myD = {1:'a',2:'b'} for key,value in dict.items(myD): print(key,value) time.sleep(0 ...

  4. python如何学的扎实_如何系统的学习python?

    Google的人机大战,人们一夜之间都知道了AlphaGo,而由此也使得Python成为了人工智能开发中的热门语言,于是越来越多的人开始学习Python,甚至连幼儿园.小学都将Python纳入了学习课 ...

  5. python二分法求最值_数值分析之二分法、试值法 python

    @ 数值分析之非线性方程求解 文章目录 二分法.试值法的本质 (1) 二分法求利率 题目 输入输出格式 举例 输入: 输出: 思路和要点 代码 结果 (2)试值法法求利率 题目 输入输出格式 举例 输 ...

  6. 四全集学python选哪种电脑_“Python教程哪个版本最适合学习?“python教程全集

    python教程,求一套比较好的python教程 好不好主要先看你自己,理解能力样,有没有接触过编程,有没础,这很重要: 看教程,能不能先给你建立起知识体系框架,许多教程一上来就直接给你灌输知识很让人 ...

  7. python完全支持面向对象编程_[Python] 类与面向对象编程

    1. class语句 类通常是由函数.变量和属性组成的集合.使用class语句可以定义类,例如: class Account(object): num_accounts = 0 def __init_ ...

  8. python中continue用法案例_记录今天学习python中for与while循环针对break和continue的用法...

    python中有两个主要的循环for与while,其中针对这两个循环有两种不同的中断用法break与continue. 首先先看下面的循环代码: 1: for i in range(10):#变量i带 ...

  9. python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)

    [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...

  10. python从入门到精通-小白如何系统学习python,从入门到精通?

    其实Python入门并不难,只要你有足够的自信心,明确学习目标,循序渐进就能不断享受到python带给你创新的乐趣. 大家为什么要学习python呢? 1.python简单易学 python的优势就是 ...

最新文章

  1. python获取当前时间的函数_java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数...
  2. Crypto API 学习笔记一
  3. P6282 [USACO20OPEN] Cereal S 思维
  4. Redis 键值过期操作
  5. 年薪不到 25.2 万退学费,廖雪峰的“大数据高级开发”课程招生
  6. linux文件系统管理知识导图,Linux磁盘和文件系统管理基础知识自测
  7. Chainlink预言机正式集成至币安智能链
  8. kafka 控制台命令
  9. Citrix 修复严重漏洞,可导致 XenMobile Server 遭接管
  10. adadelta算法_c – 尝试理解adadelta算法
  11. 最全面的web程序设计知识点总结
  12. oracle12突然出现ora12514,【ORACLE】提示ORA-12514错误处理
  13. 从西直门立交桥谈IT架构与重构(干货)
  14. PCIe5.0的Add-in-Card(AIC)金手指layout建议(一)
  15. 【宇麦科技】盘点2022:企业网络安全的七大成功要素
  16. linux防文件误删
  17. 【赵强老师】什么是PL/SQL?
  18. 刷脸支付不需要掏手机扫码很是方便
  19. csapi matlab,Matlab函数csapi与papi的区别是什么
  20. Kafka消费者原理解析

热门文章

  1. windows中如何让chrome信任自签名证书?
  2. 超级干货:光纤知识总结最全的文章,盘它!
  3. 内部收益率计算公式用计算机,内部收益率的计算公式是什么
  4. vnc远程控制软件配置,vnc远程控制软件怎么配置,教程详解
  5. 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义care 一型 使用了frecso SimpleDraweeView)
  6. 如何查看网站是否CDN加速?测试网站全国访问速度的方法!
  7. 如何把电脑加上公司的域
  8. 设计模式大作业绘图系统【六种设计模式+文档】
  9. libcurl之curl_easy_getinfo的使用教程
  10. Android日期类组件学习