大爽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):

    Return True if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual) subclass thereof. If object is not an object of the given type, the function always returns False.

    如果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):

    Return True if string starts with the prefix, otherwise return False.

    字符串以prefix变量值开头,则返回True,否则返回False
  • str.endswith(suffix):

    Return True if the string ends with the specified suffix, otherwise return False.

    字符串以suffix变量值结尾,则返回True,否则返回False
  • str.isdigit():

    Return True if all characters in the string are digits and there is at least one character, False otherwise.

    字符串中的所有字符都是数字,且至少有一个字符,则返回True,否则返回False
  • str.islower():

    Return True if all cased characters in the string are lowercase and there is at least one cased character, False otherwise.

    字符串中的所有字符都是小写,且至少有一个字符,则返回True,否则返回False
  • str.isupper():

    Return True if all cased characters in the string are uppercase and there is at least one cased character, False otherwise.

    字符串中的所有字符都是大写,且至少有一个字符,则返回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的更多相关文章

  1. 大爽Python入门教程 3-2 条件判断: if...elif..else

    大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...

  2. 大爽Python入门教程 3-3 循环:`for`、`while`

    大爽Python入门公开课教案 点击查看教程总目录 for循环 可迭代对象iterable 不同于其他语言. python的for循环只能用于遍历 可迭代对象iterable 的项. 即只支持以下语法 ...

  3. 大爽Python入门教程 3-4 实践例题

    大爽Python入门公开课教案 点击查看教程总目录 1. 求和 使用循环,计算列表所有项的和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, 11 ...

  4. 大爽Python入门教程 3-5 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  5. 大爽Python入门教程 3-6 答案

    大爽Python入门公开课教案 点击查看教程总目录 1 求平方和 使用循环,计算列表所有项的平方和,并输出这个和. 列表示例 lst = [8, 5, 7, 12, 19, 21, 10, 3, 2, ...

  6. 大爽Python入门教程 2-5 *拓展实践,对比与思考

    大爽Python入门公开课教案 点击查看教程总目录 本文偏难. 推荐等第一二三四章上完后,回过来拓展阅读. 基础情景思考 假设有这样一张成绩表 最左边的一列是名字,起名麻烦. 这里直接用ABC...来 ...

  7. 大爽Python入门教程 总目录

    作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 大爽Python入门公开课教案 本篇博客为公开课教案目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节, ...

  8. 大爽Python入门教程 2-2 序列: 字符串、元组与列表

    大爽Python入门公开课教案 点击查看教程总目录 序列 序列(sequence): 顾名思义,有序的排列. 有序排列的一串数据. 一种容器,容器内成员有序排列. python的字符串str,元组tu ...

  9. 大爽Python入门教程 2-3 字符串,列表,字典

    大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...

随机推荐

  1. centos7.5离线安装Docker及容器运行报OCI runtime create failed 问题定位与解决

    前言 接上篇 <记一次centos挂载ceph存储的坑> 服务器重做了centos7.5版本的操作系统,剩下就是安装docker,考虑yum安装耗时较长,我一般都是直接安装二进制版本doc ...

  2. firewalld dbus接口使用指南

    firewalld,一个基于动态区的iptables/nftables守护程序,自2009年左右开始开发,最新版本 - 防火墙0.6.3 - 发布于2018年10月11日.主要的开发人员是托马斯·沃纳 ...

  3. SpringBoot 如何进行限流?老鸟们都这么玩的!

    大家好,我是飘渺.SpringBoot老鸟系列的文章已经写了四篇,每篇的阅读反响都还不错,那今天继续给大家带来老鸟系列的第五篇,来聊聊在SpringBoot项目中如何对接口进行限流,有哪些常见的限流算 ...

  4. 洛谷4755 Beautiful Pair (分治)

    题目描述 小D有个数列 \(a\),当一个数对 \((i,j)(i\le j)\) 满足\(a_i\)和\(a_j\)的积 不大于 \(a_i \cdots a_j\) 中的最大值时,小D认为这个数对 ...

  5. 回归本心QwQ背包问题luogu1776

    今天在这里说一下多重背包问题 对 之前一直没有怎么彻底理解 首先多重背包是什么?这里就不做过多的赘述了 朴素的多重背包的复杂度是\(O(n*m*\sum s[i])\),其中\(s[i]\)是每一件物 ...

  6. java链接并操作数据库

    链接准备 MySQL数据库驱动(连接器).mysql-connector-java-x.x.xx.jar会在MySQL安装时提供,若Mysql是默认安装路径,则连接器在:C:\Program File ...

  7. Redis大集群扩容性能优化实践

    一.背景 在现网环境,一些使用Redis集群的业务随着业务量的上涨,往往需要进行节点扩容操作. 之前有了解到运维同学对一些节点数比较大的Redis集群进行扩容操作后,业务侧反映集群性能下降,具体表现在 ...

  8. 关于keras框架的介绍以及操作使用

    Keras 是一个 Python 深度学习框架,可以方便地定义和训练几乎所有类型的深度学习模型.Keras 最开始是为研究人员开发的,其目的在于快速实验.我们可以进入网站主页 - Keras 中文文档 ...

  9. 【UE4 插件】UnrealEnginePython 源码版编译、项目打包注意事项

    源码下载 git clone git clone https://github.com/20tab/UnrealEnginePython 直接下载zip https://github.com/20ta ...

  10. elasticsearch基于RBAC认证和集群之间的TLS通讯

    elasticsearch基于RBAC认证和集群之间的TLS通讯 一.背景 二.需要解决的问题 三.给es增加用户名和密码访问 1.修改config/elasticsearch.yml 2.访问es集 ...