Skip to content

Latest commit

 

History

History
186 lines (140 loc) · 4.13 KB

119-198696-缩进细节_indent_if条件_多条语句.sy.md

File metadata and controls

186 lines (140 loc) · 4.13 KB
show version enable_checker
step
1.0
true

缩进细节

回忆

  • 上次学习了
    • 条件分支
  • 写了一个 条件语句的程序
  • if条件语句 包括
    • if条件表达式
    • if语句执行体
  • 条件表达式成立
    • 执行条件语句执行体
  • if语句还能怎么玩呢?🤔

满足条件

t = float(input("Your temperature:"))
if t > 38:
    print("\033[41m[warning]\033[0mYou have a fever!")
if t > 38:
    print("\033[41m[warning]\033[0mTake a rest!")
  • 满足第 2 句条件的话
    • 可以执行第 3 句
  • 还满足第 4 句条件的话
    • 可以执行第 5 句
  • 其实第 2、4 两句条件相同的
    • 可以把执行部分合并起来么?

多行缩进

  • 如果合并成两行的话
  • 会如何呢?

图片描述

  • 如果满足要求
  • 两条语句都会执行
  • 这个缩进必须 4 个字符么?
  • 试试 👊

尝试

图片描述

  • 只要是相同字符
    • 无论是
      • 4 个字符
      • 3 个字符
      • 2 个字符
      • 甚至 1 个字符
    • 都没有问题

图片描述

  • 那如果没有缩进会如何呢?

没有缩进

  • 没有缩进
    • 会报错误❌

图片描述

  • IndentationError
    • 缩进错误
    • 期待着一个缩进的块

图片描述

  • 缩进
    • 是一定要有的
    • 而且必须齐头并进
      • 即使缩进只有一格
    • 也要保持齐头并进
  • 为什么 对于 对齐 有这么高的要求呢?

对齐

  • 横平竖直
    • 缩进整齐的代码
    • 也代表 头脑逻辑是清晰的

图片描述

  • 但是
    • 缩进 多少 才合理呢?

规定

  • 缩进 4 格
    • 是python规定的默认缩进
    • 为什么不是2或者8呢?

图片描述

  • 谷歌代码 缩进2格
    • 缩进数量 太小
    • 根本 看不出 程序block的层次
  • unix的c代码
    • 缩进数量为8
    • 这个有点过长了
    • 横向没有这么多的空间
    • 左右分屏比较复杂
  • 4格最好

更多快捷键

  • 可以在 vim 中进行控制
  • :set noet sw=4 ts=4 sts=4 ai
    • 可以快速设置tab键也是4个空格
    • 以及自动缩进
  • gg=G
    • 可以从头到尾快速缩进
  • 缩进的 几行其实就是一个 block
  • 严格使用缩进来体现代码的逻辑从属关系
  • 如果缩进不对
    • 那么这个代码本身就是错误的
  • 这样一眼就能看见错误

官方吐槽

图片描述

  • 看起来 if 满足时可以执行两句
    • 实际上执行一句
    • 看起来对的
    • 但是要找半天
  • 而且大括号让程序增加很多行
    • 还有关于大括号放置位置的争论😌

对大括号的态度

  • 建立了一个专门的模块
    • 表达明确的态度

图片描述

  • 非常坚决

意外

t = float(input("Your temperature:"))
if (t > 38):
    print("\033[41m[warning]\033[0mYou have a fever!")
    print("\033[41m[warning]\033[0mTake a rest!")
    local_variable = "oeasy"
print(local_variable)
  • 输入36

图片描述

  • 为什么会这样呢?

总结

  • 这次学习了 if条件语句中的 缩进块
    • 缩进的范围 是 程序逻辑的体现
    • 某行缩进与不缩进意味着
      • 当前行 归属于 哪个block
    • 这很显眼
  • 缩进4个空格
    • 从 视觉上 和 逻辑上
    • 都明确了 代码的逻辑关系
  • 毕竟
    • Readability counts.
    • 可读性很重要
  • 我们可以 debug 调试 条件语句 么?🤔
  • 下次再说 👋