大爽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. WPF进阶技巧和实战03-控件(5-列表、树、网格02)

    数据模板 样式提供了基本的格式化能力,但是不管如何修改ListBoxItem,他都不能够展示功能更强大的元素组合,因为了每个ListBoxItem只支持单个绑定字段(通过DisplayMemberPa ...

  2. asp.net core使用identity+jwt保护你的webapi(一)——identity基础配置

    前言 用户模块几乎是每个系统必备的基础功能,如果每次开发一个新项目时都要做个用户模块,确实非常无聊.好在asp.net core给我们提供了Identity,使用起来也是比较方便,如果对用户这块需求不 ...

  3. redis编译安装、哨兵、集群

    编译安装 #下载源代码解压 wget https://download.redis.io/releases/redis-5.0.13.tar.gz -P /home/ tar -xvf /home/r ...

  4. 2020.5.16-ICPC Central Europe Regional Contest 2019

    A. ABB #include <bits/stdc++.h> using namespace std; #define PB push_back #define ZERO (1e-10) ...

  5. Kubernetes client-go 源码分析 - Reflector

    概述入口 - Reflector.Run()核心 - Reflector.ListAndWatch()Reflector.watchHandler()NewReflector()小结 概述 源码版本: ...

  6. ORA-19815: WARNING: db_recovery_file_dest_size闪回区爆满问题处理

    问题描述:有一个数据库起不来了,根据层层排查,是因为归档设置在了闪回区,文件的大小已经超出了闪回区限制.最后直接给数据库拖挂 环境:windows server2012 , oracle 19c,单机 ...

  7. vue3.x移动端适配px2rem

    1.什么是px2rem px2rem是一个插件能将px自动转换为rem,以适配各种不同的屏幕尺寸.前端开发可以直接使用设计稿量出的尺寸或者蓝湖给出的px进行布局,这样极大的提高了开发效率. 2.前提条 ...

  8. [源码解析] Pytorch 如何实现后向传播 (2)---- 引擎静态结构

    [源码解析] Pytorch 如何实现后向传播 (2)---- 引擎静态结构 目录 [源码解析] Pytorch 如何实现后向传播 (2)---- 引擎静态结构 0x00 摘要 0x01 Engine ...

  9. redis5集群搭建步骤

    通常情况下为了redis的高可用,我们一般不会使用redis的单实例去运行,一般都会搭建一个 redis 的集群去运行.此处记录一下 redis5 以后 cluster 集群的搭建. 一.需求 red ...

  10. 修炼Servlet

    修炼Servlet 一.Servlet简单认识 1.Servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的 ...