3.4.1 布尔值和布尔变量

在讲条件语句之前,首先应该了解一下布尔(boolean)类型。条件语句(if)需要为其制定布尔值或布尔类型的变量,才能根据条件判断是否要执行指定代码块中的语句。布尔值只有两个值:True和False,可以将这两个值翻译成"真"和"假"或者"1"和"0"。

现在已经了解了布尔值是用来做什么的,但Python语言会将哪些值看作是布尔值呢?其实在Python语言中,每一种类型的值都可以被解释成布尔类型的值。例如,下面的值都会被解释成布尔值中的False。

None 0 "" () [] {}

这些值所涉及的数据类型有一些到现在为止并没有讲过(例如,[]表示长度为0的列表),不过也不用担心,继续跟我学下去,在后面的章节中会详细讲解这些数据类型。

如果在条件语句中使用上面的这些值,那么条件语句中的条件都会被解释成False,也就是说,条件代码块中的语句不会被执行。

在Python语言底层,会将布尔值True看作1,将布尔值False看作0,尽管从表面上看,True和1、False和0是完全不同的两个值,但实际上,它们是相同的。可以在Python控制台验证这一点。

>>> True == 1
True
>>> False == 0
True
>>> True + False + 20
21

很明显,可以直接将True看成1,将False看成0,也可以直接将True和False当成1和0用,所以True+False+20的计算结果是21。

另外,可以用bool函数将其他类型的值转换为布尔类型的值。

>>> bool("")
False
>>> bool("Hello")
True
>>> bool([])
False
>>> bool([1,2,3])
True
>>> bool(20)
True
>>> bool('')
False

可以看到,在前面给出的几个会被系统认为是False的值,通过bool函数的转换,会变成真正的布尔值。不过这些值是不能直接和布尔值比较的,例如,不能直接使用"[]==false",正确的做法是先用bool函数将其转换为布尔值,然后在比较:

bool([]) == false

在前面的代码中使用了"=="运算符,这是逻辑运算符,是二元运算符,需要指定左右两个操作数用于判断两个值是否相等,如果两个操作数相等,运算结果为True,否则为False。这个运算符在后面的章节中会经常用到,当然,还有很多类似的运算符,在讲解条件语句时会一起介绍。

Python进阶之路 3.4.1 布尔值和布尔变量相关推荐

  1. Python 进阶之路 (九) 再立Flag, 社区最全的itertools深度解析(上)

    前言 大家好,今天想和大家分享一下我的itertools学习体验及心得,itertools是一个Python的自带库,内含多种非常实用的方法,我简单学习了一下,发现可以大大提升工作效率,在sf社区内没 ...

  2. Python 进阶之路 (十二) 尾声即是开始

    Python进阶之路总结 大家好,我的<< Python进阶之路>>到这一期就到此为止了,和 <<Python 基础起步>>不同,在掌握了一些基础知识后 ...

  3. Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)

    什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...

  4. 毛毛Python进阶之路6——MySQL 数据库(二)

    毛毛Python进阶之路6--MySQL 数据库(二) 一.对于自增 show create table 表名; # 查看表是怎样创建的. show create table 表名\G; #将某个表旋 ...

  5. java布尔值_Java中的布尔值与布尔值

    HUX布斯 我有点扩展了提供的答案(因为到目前为止,他们专注于他们自己的"自己的" /人工术语,侧重于对特定语言进行编程,而不是照顾一般情况下(即当事情发生时)创建编程语言的幕后情 ...

  6. python 空字符串的布尔值_python布尔值

    ## Python布尔值 ***** 布尔值表示两个值之一:`True`或`False`. 在编程中,您通常需要知道表达式是否为`True`或`False`.您可以在Python中求值任何表达式,并获 ...

  7. javascript布尔值_JavaScript布尔值通过上法庭进行解释

    javascript布尔值 by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) JavaScript布尔值通过上法庭进行解释 (JavaScript boolean ...

  8. 与或非运算(布尔值/非布尔值)

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...

  9. freeMarker读取布尔值,布尔值判断

    最近用到freeMarker, 也用到了布尔值,看到一篇文章中这样描述: 在后台逻辑里,定义了布尔类型的变量 将该变量放进ModelMap modelBoolean isAct = false: mo ...

最新文章

  1. 分布式技术一周技术动态 2016-11-27
  2. js php 获取时间倒计时_,js实现倒计时及时间对象
  3. electron 剪贴板 截图_用electron开发了一个屏幕截图工具
  4. python【数据结构与算法】树状数组(附例题)
  5. C语言 *、 的含义
  6. 程序员编程必备名言佳句,提升装逼指数~
  7. BugkuCTF-MISC题神秘的文件
  8. mie散射理论方程_电磁散射工程应用基础
  9. Office在线预览及PDF在线预览的实现方式大集合
  10. sql server 缓存_深入了解SQL Server缓冲区缓存
  11. django实现目录上传(最简单的方法)
  12. Excel 精选28个技巧
  13. 使用IPv6下载google drive 大文件
  14. CSS3 之 童年的纸飞机
  15. 高歌——【先声夺银】四种能力判断你的炒白银水平
  16. 跟我做一个可以聊天的 Visual Studio Code 插件
  17. 计算机语言英语作文80词,春节英语作文80字【带中文翻译】-太平洋电脑网
  18. 珍珠项链(洛谷-P2768)(Dp矩阵加速)
  19. dh算法 java_java密钥交换算法DH定义与应用实例分析
  20. MATLAB电话拨号音仿真,MATLAB电话拨号音的合成与识别

热门文章

  1. 睡莲为何能散发迷人香味?中国科学家发现关键基因
  2. 8.2 贪心策略例题---快速渡河问题(没看懂!)
  3. 1_node for windows 安装部署
  4. ubuntu 搭建实验室多人使用服务器
  5. Java各类技能知识点学习链接大全:八、Redis 缓存
  6. matlab几何畸变矫正,【2017年整理】基于神经网络的数字图像几何畸变矫正方法.pdf...
  7. 连连看——网易游戏2016实习生招聘
  8. 上海往事之带娃游泳有惊无险
  9. Android APP通过JNI直接访问硬件框架
  10. 关于TrueType字体的gasp技术说明