show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 这次学习了条件分支
- 首先进行if单分支条件语句
- 如果expression表达式成立
- 就执行相应的语句
- 如果条件满足的话
- 可以执行多条语句么?🤔
- 试试
- 满足第2句条件的话
- 可以执行第3句
- 还满足第4句条件的话
- 可以执行第5句
- 其实第2、4两句条件相同的
- 可以把执行部分合并起来么?
- 如果合并成两行的话
- 会如何呢?
- 如果满足要求
- 两条语句都会执行
- 这个缩进必须4个字符么?
- 试试👊
- 只要是相同字符
- 3个字符
- 2个字符
- 甚至1个字符
- 都没有问题
- 那如果没有缩进会如何呢?
- 没有缩进
- 会报错误
- 期待着一个缩进的块
- 缩进是一定要有的
- 即使缩进只有一格
- 但是缩进多少才合理呢?
- 最好就是4格缩进
- 可以在vim中进行控制
:set noet sw=4 ts=4 sts=4 ai
- 可以快速设置
gg=G
可以从头到尾快速缩进- 缩进的3,4行其实就是一个block
- 严格使用缩进来体现代码的逻辑从属关系
- 如果缩进不对 那么这个代码本身就是错误的
- 这样一眼就能看见错误
- 至少和c++比起来是这样的
- 官方文档曾经吐槽其他语言使用的大括号
- 例程看起来if满足时可以执行两句
- 实际上执行一句
- 看起来对的
- 但是要找半天
- 而且大括号让程序增加很多行
- 还有关于大括号放置位置的争论
- python这下好了
- 直接就把大括号去了
- 为什么python中空格缩进会这么重要呢?
- 其实空格在有些情况下是会被忽略的
- 比如
- 就像其他语言一样
- 生成语法树的时候
- 这些空格可以被忽略
- 那什么时候空格不能被忽略呢?
- 在用缩进控制block范围的时候
- block是语句块
- block语句块是由语句statement组成的
- block语句块的范围是由缩进控制的
-
大多数情况
-
我们会选择第一种方式
-
一句是一个statement语句
-
3个statement语句构成一个block语句块
-
这个block语句块是和if对接的
-
过程是这样的
-
但是在这个 程序块block中是否会出现意外呢
-
有意就一定有意外😄
- 为什么会这样呢?
- 如果是39的话
- 第三行就能执行
- l就能被声明
- 如果是36的话
- 第三行就不能执行
- l就不能被声明
- 怎么办?
- 不论if条件是否满足
- l都提前声明了
- 在一开始就把所有要用的变量声明好
- 是一个好习惯
- 这次学习了if单分支条件语句中的缩进块
- 缩进的范围是程序逻辑的体现
- 某行缩进与不缩进意味着这行是不是属于if的语句块
- 这很好很显眼
- 而且要注意变量声明最好在最前面做
- 比较清晰
- 我们可以 debug调试 这个程序么?🤔
- 下次再说👋