Skip to content

Latest commit

 

History

History
396 lines (271 loc) · 7.18 KB

File metadata and controls

396 lines (271 loc) · 7.18 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0144
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

布尔类型

回忆

  • 上次 调试了 分支结构

    • 不要在 分支语句的 执行体中
    • 声明变量
  • 条件判断 有两种可能

图片描述

  • True和False
    • 都是 布尔类型的变量
  • 什么是什么类型来着?🤔

type

type(True)
type(False)
  • 效果

图片描述

  • 什么是布尔类型

bool

  • 来自一位英国数学家布尔

图片描述

  • 他研究出一套关于真假的数学

图片描述

  • 如果 判断条件 不是布尔类型呢???🤔

转化

if 0:
	print("0")


if 1:
	print("1")
  • 其实 这里面
    • 对于 条件判断的 赋值表达式
    • 有一个 隐式的 类型转化
    • 用 bool函数
    • 将 表达式 转化为整型

图片描述

  • 具体怎么转化?

类型转化

bool(1)
bool(0)
  • 可以用 bool函数
    • 将整型变量 转化为 布尔型

图片描述

  • 如果被转化的 整数
    • 非零非一
    • 会如何呢?

转化

bool(3)
bool(4)
bool(-5)
对比项 非零数字
布尔值 True False
电信号 有电 没有电
电路状态 通路 断路

图片描述

  • bool类型
    • 什么来历呢?

帮助文档

help(bool)
  • bool类型是int型的子类型

图片描述

  • True 和 False 对应的 整数 是多少?

转化为整型

int(True)
int(False)
  • 这点 和 c语言逻辑 基本一致
    • 零 就是 False
    • 壹 就是 True

图片描述

  • c语言如何写条件语句呢?

c语言

  • 在c语言中
    • 没有布尔类型
    • 数字0 代表假
    • 数字非0 代表真

图片描述

  • c语言 从哪得到的启发?

开关

  • 这来 自于 电路
    • 开关 控制
    • 电压的 高低

图片描述

状态类别 状态1 状态2
开关状态
灯光状态
电路状态
电平状态 高电平 低电平
数值表示 1 0
逻辑判断 True False
逻辑文字

门电路

  • 使用 真空管 或者 固态三极管
    • 用 小电流 做开关
      • 控制 大电流
    • 这构成了 电子工程的基础

图片描述

  • 没电流
    • 开关关闭
    • 就不能通过
  • 由此 产生了 电子工程
    • 门电路

真假

  • 开门 的 条件

    • 就相当于 钥匙
  • 假的话

    • 就相当于没有拿到钥匙
    • 撞板
    • 走人

图片描述

    • 是 用来的?
    • 还是 用来的?

  • 敌人来了就关上
  • 朋友来了就打开

图片描述

  • 门 是 用来控制开关的
    • 就像 门电路 一样
  • 在c语言中
    • 见到0 关闭
    • 见到1 打开
  • 什么python在这方面没有跟随c呢?

一顿中餐

  • Guido在一顿中餐之后
    • 根据收集到的反馈
    • 做出了BDFL的最后决定

图片描述

  • 有些言辞激烈的反馈
    • 其本质 理由不足

图片描述

更多

import keyword
keyword.kwlist
  • 关键字中 的前三个
    • 都是 这种 命名风格

图片描述

  • 他们的共同点就是
    • 都是常量
    • True 和 False
    • 都是bool型 常量
  • None 是
    • NoneType类型 常量
  • 小数 可以转化为 布尔类型吗?

小数

bool(0.0)
bool(1.0)
bool(2.0)
  • 规律不变
对比项 非零小数 0.0
布尔值 True False
电路状态 通路 断路
电信号状态 有电 没有电

图片描述

  • 字符串呢?

字符串

bool("")
bool("0")
bool("False")
对比项 非空字符串 空字符串
布尔值 True False
电路类比 有电/通路 无电/断路

图片描述

遇到问题

bool("False")
  • 结果合理 但是

图片描述

  • 我想要 让 字符串 "False"
    • 转化为 False
    • 可以吗?

尝试

  • 想要把"False"转化为int型
int("False")
  • 失败了

图片描述

  • 怎么办?

eval

eval("False")
  • 可以直接 衡量evaluata

图片描述

直接过不去

  • 先用eval过渡到 bool类型
    • 然后 再转化为 int型

图片描述

  • 容器类可以做判断条件么?

容器

bool([])
bool(())
bool({})
bool(set())
  • 空容器一律为 False
表达式 结果 说明
bool([]) False 空列表
bool(()) False 空元组
bool({}) False 空字典
bool(set()) False 空集合

图片描述

  • 看看官方文档说法

关于真值

  • 两种情况返回False
    • 数值为零的
      • 包括分数、小数
    • 序列长度为零的

图片描述

  • 在游乐场的帮助状态下
    • 查询真值(TRUEVALE)
      • 这个主题(topic)

解读

图片描述

类别 具体内容
常量 None、False
数字 0、0.0、0j、Decimal(0)
容器 空字符串 ''、空元组 ()、空列表 []、空字典 {}、空集合 set()
  • 我们总结一下

总结

  • 以下真值 都是 False
类别 具体内容
常量 None、False
数字 0、0.0、0j、Decimal(0)
容器 空字符串 ''、空元组 ()、空列表 []、空字典 {}、空集合 set()

图片描述

  • 除此以外的变量
    • 真值都是True
  • 当然
    • 还是 用 布尔型变量
      • 最明确
  • 如何 得到 布尔型变量 呢??🤔
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。