> 这篇文章是Python入门基地第5次直播会议总结,时间:2022/11/28
带着大家完成《自学是门手艺》第五章第二遍阅读。
从答题和讨论可以看出,大家已经基本上读懂了书中第五章的内容,并能正确使用这些工具写些简单的代码了。
## 01 以用带读
第五章大家已经读过了两遍,大家基本做到**粗略**地理解了值与运算,流程控制如何实现,函数如何调用,数据容器的基本用法,如何读写文件……这是就是`Python`编程的基础工具,后面的函数、类、生成器等这些更高级的工具都是基于这些工具的。
这里用的是粗略一词,我觉得是合理的。现在大家处于大致知道有这么个东西的阶段,但是对这个东西的使用不够熟练,了解也不够全面。读书百遍其义自见,我们只不过读了两遍而已。接下来,我们不是从头开始再通读一遍,而是**以用带读**。大家在用的过程中,遇到疑问时,需要再返回去阅读第五章,或者想知道更多的细节,也可以去查阅官方文档。
在用的过程中不断查缺补漏,在用的过程中关注实现原理,这是一个**长期反复且有意思**的过程。老白的我,也一直在重复这个过程。
`Part Two`讲到了函数的方方面面,会更加烧脑一点。我们采用跟之前一样的带读策略:**第一遍把书读完**,做些小题巩固所学;**第二遍把书读懂**,大量练大量用。
## 02 题目解析
**题目**
有四个数字:1、2、3、4,能组成多少个**互不相同且无重复数字**的三位数?各是多少,并统计总个数,打印出来?示例:`1 2 3` `1 2 4` `1 3 4` `2 3 4`等等。
**思路**
先撇开代码,只讲思路,我想我大概会这么解这道题:
- 三位数,分别对应百位、十位、个位;
- **百位定为1**,十位定为2,个位从3和4里面选,得到123、124;
- 百位定为1,十位定为3,个位从2和4里面选,得到132、134;
- 百位定为1,十位定为4,个位从2和3里面选,得到142、143;
- **百位定为2**,十位定为1,个位从3和4里面选,得到213、214;
- 百位定为2,十位定为3,个位从1和4里面选,得到231、234;
- 以此类推……
**代码**

涉及到以下知识点:
- 流程控制`for`和`if`
- `for`循环的多层嵌套
- `str`格式化方式`f"{}"`
---
**程序员里胸肌最发达,健身房里文章最流畅,作家里面代码最鲁棒**——这是美好的愿望,会是未来的我,欢迎链接。