编程语言虽然不是自然语言,细细琢磨的话,其实在很多方面也是符合传统语言学(linguistics)规律的。比如,编程语言也讲究词汇学(关键字),结构学(程序结构),句法(语法),语义(代码功能)等;在语言的学习方法上,编程语言和自然语言也高度相似。
回想一下学习英语的过程,都有这样一个阶段:语法都搞明白了,词汇量也比英国农民多得多(据说英国的农民,平均词汇量800,但我一直未找到资料验证真伪),可就是说也说不出来,听也听不明白,急得捶胸顿足。再来看看初学者学习 Python 的情况,是不是也有这样一个阶段呢?基础语法都学完了,可是读别人的代码特别吃力,自己写又茫茫然不知从何处着手。
为什么会这样呢?我给出的答案是:缺乏语感!何谓语感,专业的定义如下:语感,是比较直接、迅速地感悟语言的能力,是语言水平的重要组成部分,是对语言分析、理解、体会、吸收全过程的高度浓缩,是一种经验色彩很浓的能力,其中牵涉到学习经验、生活经验、心理经验、情感经验,包含着理解能力、判断能力、联想能力等诸多因素。
以上就是我提出编程也要讲“语感训练”的理论基础。语感训练,并不等同于语法学习,也不是完整的小项目、小课题练习,而是针对编程实践中经常遇到的字符串处理、文件读写、列表字典元组集合对象操作等基本技能进行训练,帮助初学者建立语感。
一旦建立起了语感,初学者就可以专注于功能的实现,而不会随时被一些小问题中断思维。
Python 语感训练涵盖列表、字典、元组、集合、字符串、格式化输出、类型和整数转换、文件读写、杂项等9个类别,共100道练习题。
-
将元组 (1,2,3) 和集合 {4,5,6} 合并成一个列表。
-
在列表 [1,2,3,4,5,6] 首尾分别添加整型元素 7 和 0。
-
反转列表 [0,1,2,3,4,5,6,7] 。
-
反转列表 [0,1,2,3,4,5,6,7] 后给出中元素 5 的索引号。
-
分别统计列表 [True,False,0,1,2] 中 True,False,0,1,2的元素个数,发现了什么?
-
从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除元素‘x’。
-
从列表 [True,1,0,‘x’,None,‘x’,False,2,True] 中删除索引号为4的元素。
-
删除列表中索引号为奇数(或偶数)的元素。
-
清空列表中的所有元素。
-
对列表 [3,0,