这本书的python3例子都比较基础,本来打算边看边练习一遍拉倒。可后来俺意识到别人的脑子是肉做的,俺的脑子似乎是筛子做的,只能筛住新鲜的空气而对自由的知识无能为力。。。因此记一记还是有必要的。因为是第二遍,主要目标是知识结构的巩固和改善,所以不会涉及具体细节,只打算发一些概念及思想(yes very boring)。
book structure
第一部分:python编程简介。
第二部分:面向对象编程简介。这部分将介绍不同的编程范式,着重阐述面向对象 编程。
第三部分:编程工具简介。将介绍提升编程生产力的不同工具。
第四部分:计算机科学简介。将简要介绍计算机科学知识,主要涵盖两个主题—算 法和数据结构。
第五部分:找到工作。后一部分是关于佳编程实践,如何找到软件工程师的工 作,团队协作以及程序员的自我提升。
注:这本书的中文版比英文版少了一些内容
Part1 Explanation of Python terms
关键字:编程语言中具有特殊意义的词。可在 http://theselftaughtprogrammer.io/keywords 网页中查看所有 Python 的关键字。
数据类型:数据所属的类别。
对象:Python 中具有 3 个属性的数据值—唯一标识、数据类型和值。
Str:字符串的数据类型。
字符:a 或 l 等单个符号。 Int:整数的数据类型。
整型数据:数据类型为 int 的对象,其值为一个整数。
Float:小数的数据类型。
浮点数:数据类型为float的对象,其值为一个小数。
Bool:布尔对象的数据类型。
布尔值:数据类型为bool的对象,其值为True或False。
NoneType:None对象的数据类型。
None:数据类型为NoneType的对象,其值永远为None。
常量:不会改变的值。
变量:使用赋值操作符赋予了一个值的名称。
赋值操作符:Python 中的 = 符号。
语法:规范一门语言中句子结构,尤其是字词顺序的一整套规则及流程。
语法错误:违反编程语言的语法,所导致的致命编程错误。
异常:非致命的编程错误。
操作符:在表达式中与操作符一起使用的符号。
算术操作符:数学表达式中使用的一类操作符。
操作数:操作符两侧的值。
表达式:操作符及两个操作数构成的代码。
运算顺序:数学计算中用来对表达式求值的一组规则。
比较操作符:表达式中用到的一类操作符,求值结果为True或False。
逻辑操作符:对两个表达式求值的一类操作符,求值结果为True或False。
条件语句:根据条件执行不同代码的代码。
控制结构:通过分析变量的值,来决定代码如何执行的代码块。
伪代码:用来演示逻辑的标记方法,与代码类似。
if-else 语句:程序员用来表达“如果出现这种情况,则这样做,否则那样做”的方法。
语句:一个命令或计算。
简单语句:可用一行代码表述的语句。
复合语句:通常包括多行代码的语句。 从句:复合语句的组成部分;一个从句由两行或多行代码构成,包括代码头及配套代码。
代码头:从句中包含关键字的那行代码,之后是一个冒号和一行或多行带缩进的代码。
配套代码:从句中由代码头控制的代码。
函数:可接受输入和执行指令,并返回输出的复合语句。
惯例:普遍认可的行为方式。
调用:向函数提供执行指令、返回输出所需的输入。
参数:传递给函数的数据。
必选参数:非可选参数。
可选参数:非必须提供的参数。
内置函数:Python 自带的函数。
作用域:变量可进行读写的范围。
全局作用域:可在程序中任何地方读写的变量的作用域。
全局变量:拥有全局作用域的变量。
局部作用域:只能在其定义所在的函数(或类)中读写的变量的作用域。
异常处理:一个编程概念,要求检测错误条件。如果符合则捕获异常,并决定如何 处理。
文档字符串:解释函数功能,记录其参数类型的字符串
方法:与指定数据类型紧密相关的函数。
列表:存储有序对象的一种容器。
可迭代的:如果可使用循环访问对象中的每一个元素,则该对象是可迭代的。
可迭代对象:可迭代的对象,如字符串、列表和元素。
索引:代表元素在可迭代对象中位置的数字。
可变的:容器中的内容可以发生变化。
不可变的:容器中的内容不能改变。
字典:存储对象的一种内置容器,将一个称为键的对象,映射至一个称为值的对象。
键:用来查找字典中对应的值。
值:字典中映射至键的值。
映射:将一个对象链接至另一个对象。
键值对:字典中键映射至值。
负索引:可用来从右向左查找可迭代对象中元素的索引(必须是一个负数)。
转义:在 Python 中具有特殊意义的字符(如双引号)前加上一个符号,告诉 Python 在本例中该字符代表的只是一个字符,没有特殊意义。
切片:将一个可迭代对象中元素的子集,创建为一个新的可迭代对象。
起始索引:开始切片的索引。
结束索引:结束切片的索引。
循环:在代码中定义的条件未满足之前,将持续执行的一段代码。
遍历:使用循环访问可迭代对象中的每个元素。
for 循环:用来迭代字符串、列表、元组或字典等可迭代对象的一种循环。
索引变量:变量的值为代表可迭代对象中索引的一个数字。
while 循环:只要表达式的值为True则持续执行的一种循环。
死循环:永远都不会终止的循环。
break 语句:带关键字break的语句,用来终止循环。
continue 语句:带关键字continue的语句,用来终止循环的当前迭代,并进入到 下一次迭代。
外循环:内部包含嵌套循环的循环。
内循环:嵌套在另一个循环中的循环。
模块:含有代码的 Python 文件的别称。
内置模块:Python 语言中自带的模块,包含诸多重要的功能。
导入:编写代码,告诉 Python 从哪导入计划使用的模块。
读取:访问文件的内容。
写:添加或修改文件中的数据。
文件路径:文件在计算机中存储的位置。
with 语句:一种复合语句,当 Python 退出语句时会自动执行的一个操作。
文件对象:可用来读写文件的对象。
CSV 文件:后缀为.csv 的文件,使用逗号分隔数据(CSV 表示逗号分隔的值)。 常用在管理报表的程序中。
分隔符:用来分隔 CSV 文件中数据的符号,如逗号。
Part2 Noteworthy thought
《王者之旅》电影中的主角乔什(Josh Waitzkin),在《学习的艺术》一书中回忆了 他如何反向学习国际象棋。他没有和其他人一样研究开局,而是从学习象棋残局(棋盘 上只剩下少数几个棋子)开始。这样做让他对国际象棋有了更深的理解,并赢得了多次 大赛冠军。与此类似,我认为先学习如何编程再学习理论的方法更高效,因为你了解背后原理的强烈驱动。这就是为什么本书一直到第五部分才介绍计算机科学理论, 而且内容也尽量精简。虽然理论很重要,但是在你拥有了编程经验之后,理论的价值才更大。
“大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而 是因为编程是件有趣的事儿。” —林纳斯·托瓦兹(Linus Torvalds)
ps:排版不好,又懒得去学,就是这么任性,还请见谅。