Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0142
- 这是 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`
---- 上次学习了
- 条件分支
- 写了一个 条件语句的程序
- if条件语句 包括
- 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!")
- 可以
合起来 吗?
合并 同条件 的执行体
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!")
- 如果满足 if条件表达式
- 执行if语句执行体
- 有2句
- 都缩进了 4个字符
- 都归 if条件管
- 执行if语句执行体
- 缩进必须 4 个字符么?
- 无论是
- 8 个字符
- 4 个字符
- 2 个字符
- 甚至 1 个字符
- 都
没问题
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!")
- 执行体 缩进 必须一样
- 如果 没有缩进 会如何呢?
- 没有缩进
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!")
- 会报错误❌
- 明明 有条件语句
- 但是 没有条件语句的 执行体
- IndentationError
- 期待着 缩进块
- 否则
- if语句
没有执行体
- if语句
- 缩进 一定要有的
- 还要 保持
齐头并进
- 还要 保持
- 为什么 一定要 对
齐?🤔
- 横平竖直
- 视觉上 缩进
整齐的 代码 - 头脑上 逻辑是
清晰的
- 视觉上 缩进
- python 要求缩进
多少呢?
- 缩进 4 格
- 是python规定的默认缩进
- 为什么不是2或者8呢?
- 缩进2格
- 缩进数量 太小
- 根本 看不出 层次
- 缩进数量为8
- 这个 有点 过长了
- 横向 总共 80字符
- 没这么大的空间
- c/c++ 有大括号
- python为啥 不用呢?
- https://docs.python.org/3/faq/design.html#why-does-python-use-indentation-for-grouping-of-statements
- C++ 执行错误
- 满足条件时
- 看起来可以执行两句
- 实际上执行一句
- 看起来对的
- 但是要找半天
- 看起来可以执行两句
- 因为没有大括号
- 满足条件时
- python 执行正确
- 大括号 让程序 增加很多行
- 还有 关于大括号 位置的争论😌
- Guido 对此特性
- 表达 明确的 态度
- 非常坚决
- 大括号 没有必要
- 有缩进就够了
- 如果 缩进正确
- 那么 逻辑正确
- 一眼就能看见错误
- 推荐 空4格
- 恰到好处
- tab键 刚好 就是 4个空格
- 用 tab键 好呢?
- 还是 4个空格 好呢?
Tabs or Spaces?
用 Tab 还是空格?
Spaces are the preferred indentation method.
空格是首选的缩进方式。
Tabs should be used solely to remain consistent with code that is already indented with tabs.
Tab 只应该用于兼容旧代码(原本就用 Tab 的老项目)。
Python disallows mixing tabs and spaces for indentation.
Python 绝对禁止混用 Tab 和空格进行缩进。
- vim 中 可以直接设置
- 按下空格
- 自动 扩展成4个空格
" ==============================================
" Python 官方标准缩进设置(完全符合 PEP8)
" ==============================================
" 启用文件类型检测
filetype plugin indent on
" 全局:用空格代替 Tab
set expandtab
" 一个 Tab = 4 个空格
set tabstop=4
" 缩进时每级 = 4 个空格
set shiftwidth=4
" 自动对齐缩进
set autoindent
set smartindent
" 高亮显示行尾空格、Tab 符号(方便排查错误)
set list
set listchars=tab:→\ ,trail:·
- 这次学习了
- if条件语句中的 缩进块
- 缩进的范围
- 体现的是 程序逻辑
- 某行 缩进情况 意味着
- 当前行 归属于 哪个逻辑
- 一眼就看出来
- 缩进4个空格
- 从 视觉上 和 逻辑上
- 都明确了 代码的逻辑关系
- 毕竟
- Readability counts.
- 可读性很重要
- 生活中 有这种条件语句吗??🤔
- 下次再说 👋
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。
















