本篇内容主要讲述了,为什么从函数开始,以及函数的重要性,还有就是笑来老师布置的一个长期的任务
1、为什么从函数开始?
a、 结构化编程的核心—— 拆解任务,把任务拆解到不能再拆—什么是不能再拆了?一个函数只完成一个功能的时候…..
从结构上来说,每一个函数都是一个完整的程序。因为一个程序,核心构成部分就是输入、处理、输出:
它可以有输入 —— 即,它能接收外部通过参数传递的值;
它可以有处理 —— 即,内部有能够完成某一特定任务的代码;尤其是,它可以根据 “输入” 得到 “输出”;
它可以有输出 —— 即,它能向外部输送返回值……
b、写函数的一个基本要求
● 完成一个功能;
● 只完成一个功能;
● 没有任何错误地只完成一个功能……
c、还有一些函数是非常主要的
● 参数的传递
● 多参数的传递
● 匿名函数以及函数的别称
● 递归函数
● 函数文档
● 模块
● 测试驱动编程
● 可执行程序
2、笑来老师布置的一个长期学习的任务
需要做的一件事情
Python 的代码是开源的,它的代码仓库在 Github 上:
https://github.com/python/
在这个代码仓库中,有一个目录下,保存着若干 Python Demo 程序:
https://github.com/python/cpython/tree/master/Tools/demo
这个目录下的 README 中有说明:
This directory contains a collection of demonstration scripts for various aspects of Python programming.
beer.py Well-known programming example: Bottles of beer.
eiffel.py Python advanced magic: A metaclass for Eiffel post/preconditions.
hanoi.py Well-known programming example: Towers of Hanoi.
life.py Curses programming: Simple game-of-life.
markov.py Algorithms: Markov chain simulation.
mcast.py Network programming: Send and receive UDP multicast packets.
queens.py Well-known programming example: N-Queens problem.
redemo.py Regular Expressions: GUI script to test regexes.
rpython.py Network programming: Small client for remote code execution.
rpythond.py Network programming: Small server for remote code execution.
sortvisu.py GUI programming: Visualization of different sort algorithms.
ss1.py GUI/Application programming: A simple spreadsheet application.
vector.py Python basics: A vector class with demonstrating special methods.
最起码把这其中的以下几个程序都精读一下,看看自己的理解能力:
beer.py Well-known programming example: Bottles of beer.
eiffel.py Python advanced magic: A metaclass for Eiffel post/preconditions.
hanoi.py Well-known programming example: Towers of Hanoi.
life.py Curses programming: Simple game-of-life.
markov.py Algorithms: Markov chain simulation.
queens.py Well-known programming example: N-Queens problem.
就算读不懂也没关系,把读不懂的部分标记下来,接下来就可以 “带着问题学习”……