大爽Python入门教程 3-1 布尔值: True, False
大爽Python入门公开课教案
点击查看教程总目录
1 布尔值介绍
从判断说起
回顾第一章介绍的简单的判断
>>> x = 10
>>> if x > 5:
... print("x is greater than 5")
重点来看下if x > 5:这一句。
这一句可以分为两步
x > 5: 本质是一个运算式,其值是一个布尔值。if根据布尔值来判断。
具体如下
>>> x = 10
>>> x > 5
True
>>> if True:
... print("x is greater than 5")
上面的True就是布尔值,
if条件判断本质上是根据布尔值来判断的。
布尔值
布尔值(Booleans)只有两个:
True: 真,正确False: 假,错误
其数据类型为bool。
之前第一张简单判断的比较运算符,其运算结果就是布尔值。
if判断,使用布尔值来判断是否执行冒号后的语句的。
if True就执行。
if False就不会执行。
>>> b = 1 > 5
>>> b
False
>>> type(b)
<class 'bool'>
>>> if b:
... print("1 > 5")
...
>>> c = 1 < 5
>>> c
True
>>> if c:
... print("c<5")
...
1<5
>>> if False:
... print("Only output when true")
...
>>> if True:
... print("Only output when true")
...
Only output when true
布尔转换
if条件判断, 本质上是根据布尔值来判断的。
即得到if后内容的布尔值。
当后面内容结果不是布尔对象时,
会将结果使用bool()方法转换成布尔对象。
变量使用bool()方法转换后的布尔值,
一般简称为变量的布尔值。
示例如下
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0)
False
>>> if 0:
... print("Only output when true")
...
>>> if 1:
... print("Only output when true")
...
Only output when true
>>> if -1:
... print("Only output when true")
...
Only output when true
结论(不必去记,用的时候敲一遍代码就知道了)
- 只有0的布尔值是
False,其他数(包括负数)的布尔值都是True
尤其是-1的布尔值,也是True。
小技巧:
if语句后面的输出不确定,想测试的时候,
没有必要把整个if语句敲一遍。
直接把if判断的内容的布尔值取一下就好。
常用对象的布尔值
结论(不必去记,用的时候敲一遍代码就知道了)
空容器的布尔值是False,非空容器的布尔值都是True
适用于:字符串,元组,列表,字典等等。
代码示例
>>> bool("")
False
>>> bool("a")
True
>>> bool(())
False
>>> bool((1,2))
True
>>> bool([])
False
>>> bool([1])
True
>>> bool({})
False
>>> bool({"a": 1})
True
布尔运算符
二元运算符:
and: 满足两个条件or: 满足两个条件中任意一个即可
一元运算符:
not: 不满足这个条件
代码示例
>>> A = 1 > 0
>>> B = 10 > 5
>>> C = 10 > 20
>>> D = 10 > 100
>>> A, B, C, D
(True, True, False, False)
>>> A and B
True
>>> A and C
False
>>> C and D
False
>>> A or B
True
>>> A or C
True
>>> C or D
False
>>> not A
False
>>> not C
True
返回布尔值
什么是返回值,即这个语句执行之后得到的值,
执行之后得到又称为返回,具体我们上完第四章节就理解了。
返回布尔值的语法
in: 判断一个值是否在容器中。
比如值是否在序列中,以及键key是否在字典中
使用示例
>>> "d" in "abcde"
True
>>> "z" in "abcde"
False
>>> 123 in [1, 2, 3]
False
>>> 23 in [11, 23, 35]
True
>>> dic ={"a":123, "b": 456}
>>> "a" in dic
True
>>> "d" in dic
False
>>> 123 in dic
False
返回布尔值的函数
这里介绍一些常用的函数。
isinstance(object, classinfo):
ReturnTrueif theobjectargument is an instance of theclassinfoargument, or of a (direct, indirect or virtual) subclass thereof. Ifobjectis not an object of the given type, the function always returnsFalse.
如果object变量是classinfo类的实例(或者通俗点讲,object变量的类型是classinfo),则返回True。
否则返回False。
该函数和
type(object)==classinfo效果比较相似
(并不完全一样,但对新手而言,其差别基本碰不到)
一般判断变量类型,推荐使用函数isinstance
使用示例
>>> isinstance(123, int)
True
>>> isinstance(123, str)
False
>>> isinstance("123", str)
True
>>> isinstance("123", int)
False
>>> type(123) == int
True
>>> type("123") == str
True
>>> type([1, 2, 3]) == list
True
>>> isinstance([1, 2, 3], list)
True
补充:未来会遇到种种运算,
运算之前可能会要判断数据的类型,
是否是可以运算的种类。
返回布尔值的方法
有很多判断方法,是可以放回布尔值的。
比如字符串就有一堆方法。
这里列举几个相对还比较常用的,大家了解一下,有个概念即可,
不必记住,用的时候再来查就好。
str.startswith(prefix):
ReturnTrueif string starts with theprefix, otherwise returnFalse.
字符串以prefix变量值开头,则返回True,否则返回False。str.endswith(suffix):
ReturnTrueif the string ends with the specifiedsuffix, otherwise returnFalse.
字符串以suffix变量值结尾,则返回True,否则返回False。str.isdigit():
ReturnTrueif all characters in the string are digits and there is at least one character,Falseotherwise.
字符串中的所有字符都是数字,且至少有一个字符,则返回True,否则返回False。str.islower():
ReturnTrueif all cased characters in the string are lowercase and there is at least one cased character,Falseotherwise.
字符串中的所有字符都是小写,且至少有一个字符,则返回True,否则返回False。str.isupper():
ReturnTrueif all cased characters in the string are uppercase and there is at least one cased character,Falseotherwise.
字符串中的所有字符都是大写,且至少有一个字符,则返回True,否则返回False。
使用示例
>>> "abcde".startswith("a")
True
>>> "abcde".startswith("abc")
True
>>> "abcde".startswith("bc")
False
>>> "abcde".endswith("e")
True
>>> "ab123".isdigit()
False
>>> "123".isdigit()
True
>>> "abc".islower()
True
>>> "Add".islower()
False
>>> "Add".isupper()
False
>>> "ADD".isupper()
True
大爽Python入门教程 3-1 布尔值: True, False的更多相关文章
- 大爽Python入门教程 3-2 条件判断: if...elif..else
大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...
- 大爽Python入门教程 3-3 循环:`for`、`while`
大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...
- 大爽Python入门教程 3-4 实践例题
大爽Python入门公开课教案 点击查看教程总目录 1. 求和 使用循环,计算列表所有项的和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11 ...
- 大爽Python入门教程 3-5 习题
大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...
- 大爽Python入门教程 3-6 答案
大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...
- 大爽Python入门教程 2-5 *拓展实践,对比与思考
大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...
- 大爽Python入门教程 总目录
作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 大爽Python入门公开课教案 本篇博客为公开课教案目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节, ...
- 大爽Python入门教程 2-2 序列: 字符串、元组与列表
大爽Python入门公开课教案 点击查看教程总目录 序列 序列(sequence): 顾名思义,有序的排列. 有序排列的一串数据. 一种容器,容器内成员有序排列. python的字符串str,元组tu ...
- 大爽Python入门教程 2-3 字符串,列表,字典
大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...
随机推荐
- Sentry 监控 - Distributed Tracing 分布式跟踪
系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...
- 新一代容器平台ACK Anywhere,来了
5G.AR.AIoT 等场景在推动新一代云架构的演进,而容器重塑了云的使用方式. 近日,阿里云容器服务全面升级为ACK Anywhere,让企业在任何需要云的地方,都能获得一致的容器基础设施能力. 早 ...
- 第一个Java HelloWorld
步骤 1.在记事本或者notePad++中编写java代码 public class Hello { public static void main(String[] args){ System.ou ...
- Java数据类型详解!Java秘诀,Java入门基础
Java的基本数据类型算是Java学习的基础之一,经常会听到大家提起.那么你到底有没有真正理解和掌握数据类型呢? Java 语言支持的数据类型分为两种:基本数据类型和引用数据类型!本文主要针对这两大数 ...
- visualbox安装ubuntu18过程中不能输入name,password,密码,姓名问题的解决办法+一些基本操作
问题描述:visualbox安装ubuntu18,,,,卡在注册处,无法输入姓名,密码-点击无法输入............如下图: 解决办法:更改你的Ubuntu的主板内存,主板内存默认的值 ...
- 题解 [AGC017C] Snuke and Spells
题目传送门 Description 有 \(n\) 个球排在一起,每个球有颜色 \(a_i\),若当前有 \(k\) 个球,则会将所有 \(a_i=k\) 的球删掉.有 \(m\) 次查询,每次将 \ ...
- NX屏蔽窗口的按钮
有时候在激活一个命令按钮的时候,需要同时禁止掉另外一个或多个命令按钮 ''' <summary> ''' 取按钮是否敏感 ''' </summary> ''' <para ...
- Django+Vue跨域配置与经验
一.原理 同源?同源策略? 同源的定义是:两个页面的协议.端口和域名都相同 同源的例子: 不同源的例子: 同源策略SOP(Same origin policy)是一种浏览器约定,它是浏览器最核心也最基 ...
- 大厂面试题分享:如何让(a===1&&a===2&&a===3)的值为true?
当我第一次看到这一题目的时候,我是比较震惊的,分析了下很不合我们编程的常理,并认为不大可能,变量a要在同一情况下要同时等于1,2和3这三个值,这是天方夜谭吧,不亚于哥德巴赫1+1=1的猜想吧,不过一切 ...
- 看动画学算法之:双向队列dequeue
目录 简介 双向队列的实现 双向队列的数组实现 双向队列的动态数组实现 双向队列的链表实现 双向链表的时间复杂度 简介 dequeue指的是双向队列,可以分别从队列的头部插入和获取数据,也可以从队列的 ...