读书笔记:“Python Programming: An Introduction to Computer Science”
读 Python Programming:
An Introduction to Computer Science
笔记
该书作者是
John M. Zelle
书籍版本: 1.0rc2
2 Wirting Simple Programs
2.1 The Software Development Process
此小结,作者简介清晰的介绍了一个完整的程序的开发流程图。
(学到核心之一,无论多难多复杂的东西可以先将问题简化,然后再攻克最难的地方。)
Formulate Requirements
前期的摸索,更加侧重于真实问题本身。
尽可能理解和掌握问题的起源、发展、演化,
通过逻辑的思维方式确定在编程之前可以准确描述
求解思路。
Determine Specifications:
相比第一层在思维领域战斗,这一层更关注些具体细节。
如整体程序需要哪些输入,以及最终结果呈现:输出。
如输入到输出之间的依赖关系,是否可以利用已有函数定义或者
给出独一无二的逻辑思维路线(前后关系)。
Create a Design:
一、二两层清晰之后,在此基础上尝试建立整体的架构。
同时尽可能满足特定的需要,如二层的输出内容。
Implement the Design:
将1、二、三的东西结合选择的语言翻译成相应的符合
该语言规则的源代码,比如Python 语言。
Test/Debug the Program:
容错!程序已经写完,可能第一次就直接运行。
但是,细节上忽律可能造成最终结果的明显错误。
有错咋改,
无措咋勉。
Maintain the Program。
满足客户的需求,代码增减,功能的优化。。。
2.2 Example Program: Temperature Converter
该小结是对上一小节的内容进行举例。
1,真实物理世界存在不同单位转换,其中之一是热力学领域
中温度单位。常见单位如摄氏度和华氏温度,事实上你可以定义任何单位,但是背后的道理只有一个是描述系统的冷热的一个客观物理量。因此,这个一就是二者的转换基础。转换成数学语言就是:
F = True System Thermal Properties = 9 * C / 5 + 32
So, F = 9 * C / 5 + 32
2,IPO(input, Process, Output)
C --> F
F --> C
3, Creat a Design
架构:
提示 C – > F
还是
F --> C 呢?
相应数据读入()
选定相应函数
输出
提示:请输入反馈GOOD or BAD
记录
以便以后修改
4,source code
。。。。
5, run
。。。
6,maintain
。。。
2.3 Elements of Programs
进一步学习Python的一些基础东东。
1. Names
想起老子的道德经中第一句话:
道可道,非常道;名可名,非常名。
虽然大家都读同一本书但是理解的程度不同。
老子这句话很有提示性质。
个人觉得作者水平很高,第一点先说names就已经把握了一半以上的核心。
从普通到抽象的东西都需要一个东东来说明,这就是names。
如:
Modules: covert
Function: main
values: celsius / fahrenheit
而Python语言可利用letter或者_来命名。
大小写有区别。
尽可能描述其功能或者道。
Python语言已经定义的names:
and, assert break class continue def del elif else except
exec finally for from global if import in is lambda not
or pass print raise return try while yield
2 Expressions
有了上小节的名还是不够的,那只是静态的东西,所以还需要阳光。
names + symbols ---->>> 构成多种多样/复杂的动态意思。将names链接起来,一有了,2,3还远吗???
x 一个名 32 一个名 = 一个符号
x = 32 一个动作; x == 32 又一个动作;
(x = 32)==32 又是一个动作。。。
print 一个名 x 一个名
print (x) 则是一个动作。
Python所提供的一些操作(动作常例)如
加 减 乘 除 并以此为基础的一些复杂功能
乘乘 求余 求整 。。。
Python语言也是基于其它已有的知识建立起来,比如常规数学的
运算规则也应该在Python中实现。
方式可以改变,但是背后道理一定相同。
2.4 Output Statements
SS = Syntax(form) + Semantics(meaning)
有点像心法和技巧。
print()
print(‘’)
print("")
print(,)
2.5 Assignment Statements
-
simple assignment
<变量> = <表达式>
names = expressions
很神奇,这可以推广到宇宙的尽头。不管是简单还是复杂,
容易还是困难,高还是低。。。都需要用名来描述道。可能
很难捕捉,也许需要时间认可,但是需要用名来道,道来彰显名。
=的左右虽然各在天边,但是又在近边。 -
assinging input
语言必须要和相应的用户交互,所有必须有输入,当然还有输出。
屏幕
