人邮君来补充一点,编程也需要“语感训练”的理论基础。【内附Python语感训练资料】

看似虚无缥缈的“语感”,对编程也有用?

在上世纪80年代,有一部BBC推出的动画片风靡许多国家,并且于1992年在国内播出。这部只有六个角色的动画片至今在世界范围已经收获了上百万的儿童观众,并且帮助他们进行了外语的启蒙学习。这部片子就是《大块头玛泽的故事》,玛泽是一个来自外星的怪物,故事讲述了他在岗多国遇到国王、公主和花匠等人的奇妙经历。

在人们的观念中,学习一门语言往往需要正式的课程以及对语法的清晰掌握。而两岁到六七岁之间的小朋友尚处于牙牙学语阶段,并不能理解语法结构这样的抽象概念,但是这并不影响他们通过玛泽的故事完成对英语、法语、韩语、意大利语等各种语言的启蒙学习。

这是如何做到的呢?原来毛绒绒的外星人玛泽和其他人物都会夸张地用不同语气重复需要小朋友学习的单词或者句型结构,使小朋友在看动画片的时候不知不觉就记住了这些英语表达。因此这个动画片非常有助于儿童的英语启蒙和语感培养。而语感也就是有些人在做外语的语法题目时,不能准确地描述出语法规则却常常能“蒙”对的主要原因。

这个通过重复来培养语感的过程在学习计算机编程中同样有所帮助。编程语言虽然不是自然语言,细细琢磨的话,其实在很多方面也是符合传统语言学规律的。比如,编程语言也讲究词汇学(关键字),结构学(程序结构),句法(语法),语义(代码功能)等;在语言的学习方法上,编程语言和自然语言也高度相似。

回想一下学习英语的过程,都有这样一个阶段:语法都搞明白了,词汇量也比英国农民多得多(据说英国的农民,平均词汇量800,但我一直未找到资料验证真伪),可就是说也说不出来,听也听不明白,急得捶胸顿足。再来看看初学者学习Python的情况,是不是也有这样一个阶段呢?基础语法都学完了,可是读别人的代码特别吃力,自己写又茫茫然不知从何处着手。

为什么会这样呢?这便是缺乏语感。

何谓语感,专业的定义如下:语感,是比较直接、迅速地感悟语言的能力,是语言水平的重要组成部分,是对语言分析、理解、体会、吸收全过程的高度浓缩,是一种经验色彩很浓的能力,其中牵涉到学习经验、生活经验、心理经验、情感经验,包含着理解能力、判断能力、联想能力等诸多因素。

以上就是编程也要讲“语感训练”的理论基础。语感训练,并不等同于语法学习,也不是完整的小项目、小课题练习,而是针对编程实践中经常遇到的字符串处理、文件读写、列表字典元组集合对象操作等基本技能进行反复训练,帮助初学者建立语感。一旦建立起了语感,初学者就可以专注于功能的实现,而不会随时被一些小问题中断思维。

在Python编程领域尚处于“牙牙学语”阶段的新手可以从这100道练习题开始训练。这份完整的Python语感训练涵盖了列表、字典、元组、集合、字符串、类型转换、文件读写、综合应用等类型,共100道练习题。

让我们先来尝试几道题,请记得做完再查看答案!

1. 在列表 [1, 2, 3, 4, 5, 6] 首尾分别添加整型元素7和0。

>>> a = [1,2,3,4,5,6]

>>> a.insert(0,7)

>>> a.append(0)

>>> a

[7, 1, 2, 3, 4, 5, 6, 0]

2. 反转列表 [0, 1, 2, 3, 4, 5, 6, 7] 。

>>> a = [0,1,2,3,4,5,6,7]

>>> a.reverse()

>>> a

[7, 6, 5, 4, 3, 2, 1, 0]

>>> a[::-1]

[0, 1, 2, 3, 4, 5, 6, 7]

3. 分别统计列表 [True, False, 0, 1, 2] 中 True, False, 0, 1, 2的元素个数,发现了什么?

>>> a = [True,False,0,1,2]

>>> a.count(True),a.count(False),a.count(0),a.count(1),a.count(2)

(2, 2, 2, 2, 1) # count()不区分True和1、False和0,但None、''不会被视为False

4. 从列表 [True, 1, 0, 'x', None, 'x', False, 2, True] 中删除索引号为4的元素。

>>> a = [True,1,0,'x',None,'x',False,2,True]

>>> a.pop(4)

>>> a

[True, 1, 0, 'x', 'x', False, 2, True]

列表是Python中使用非常频繁的数据结构,用户可以在列表的任何位置增加、删除和替换元素。下面再来看一下另外一种数据结构,即元组。

5. 将元组 (1, 2) 和 (3, 4) 合并成一个元组。

>>> (1,2) + (3,4)

(1, 2, 3, 4)

6. 返回元组 ( 'Alice', 'Beth', 'Cecil' ) 中 'Cecil' 元素的索引号。

>>> ('Alice','Beth','Cecil').index('Cecil')

2

7. 判断 'Cecil' 是否在元组 ( 'Alice', 'Beth', 'Cecil' ) 中。

>>> 'Cecil' in ('Alice','Beth','Cecil')

True

8. 返回在元组 (2, 5, 3, 7) 索引号为2的位置插入元素 9 之后的新元组。

>>> (*(2,5,3,7)[:2], 9, *(2,5,3,7)[2:])

(2, 5, 9, 3, 7)

此外,字符串也是Python应用中经常需要处理的数据类型,如果你认为自己已将字符串内建函数的使用烂熟于心了,不妨试试下面这几道题。

9. 返回字符串 'this is python' 中 'is' 首次出现和最后一次出现的位置。

>>> s = 'this is python'

>>> s.find('is') # 首次出现的索引,未找到则返回-1

2

>>> s.rfind('is') # 最后一次出现的索引,未找到则返回-1

5

10. 判断字符串 'adS12K56' 是否完全为字母数字,是否全为数字,是否全为字母,是否全为ASCII码。

>>> s = 'adS12K56'

>>> s.isalnum()

True

>>> s.isdigit()

False

>>> s.isalpha()

False

>>> s.isascii()

True

11. 清除字符串 '\t python \n' 左侧、右侧,以及左右两侧的空白字符。

>>> s = '\tpython\n'

>>> s.lstrip()

'python\n'

>>> s.rstrip()

'\tpython'

>>> s.strip()

'python'

12. 将三个全英文字符串(比如,'ok', 'hello', 'thank you')分行打印,实现左对齐、右对齐和居中对齐效果。

>>> a = ['ok', 'hello', 'thank you']

>>> len_max = max([len(item) for item in a]) # len_max为最长字符串的长度

>>> for item in a:

print('"%s"'%item.ljust(len_max))

"ok "

"hello "

"thank you"

>>> for item in a:

print('"%s"'%item.rjust(len_max))

" ok"

" hello"

"thank you"

>>> for item in a:

print('"%s"'%item.center(len_max))

" ok "

" hello "

"thank you"

13. 将 0.00774592 和 356800000 格式化输出为科学计数法字符串。

>>> '%E,%e'%(0.00774592, 356800000)

'7.745920E-03, 3.568000e+08'

不知道这短短的十几道题目是否让你找到了自己的语感欠缺之处?如果你希望使用全部100道题目对自己的Python语感进行检验,可以下载这份练习题的完整文档。

这份练习题来自CSDN资深博主许向武(天元浪子)老师的最新力作《Python高手修炼之道:数据处理与机器学习实战》。

这本书非常适合初学者有针对性地进行编程技能提升,能够满足你从巩固基础、磨练技能再到拓展应用的学习需求,助你“修炼”为Python高手。

想成为高手当然就需要有高手引路。基于十多年的Python数据处理经验,许向武老师总结了新手初学Python中的常见盲点和误区,着重对其进行了梳理和讲解,力求让你少走弯路,直接站在高手的肩膀上看Python。

随着Python语言的热度上升,如今学习Python的资源、书籍名目纷杂,让学习者难以甄别和选择。不如就从这本Python专家撰写的“修炼指南”开始,从此告别“从入门到放弃”,走上Python高手修炼之路。

关联阅读为什么很多人喜欢 Python?​www.zhihu.com线程和进程的区别是什么?​www.zhihu.com最好的Python入门教材是哪本?​www.zhihu.com人民邮电出版社:如果只推荐一本 Python 进阶书籍,我要 Pick 它!​zhuanlan.zhihu.com人民邮电出版社:最受推崇的 Python 书有哪些?​zhuanlan.zhihu.com

========

赠人玫瑰,手留余香,不要忘记点赞、收藏、关注 @人民邮电出版社 哦!

一键三连,感恩有你~

python学习需要基础吗_要学 Python 需要怎样的基础?相关推荐

  1. python 相对路径报错_小白学 Python(18):基础文件操作

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 学习python用的什么编辑器_新手学Python用什么编辑器比较好?

    新手学Python用什么编辑器比较好?工欲善其事必先利其器,选好工具学习更高效.市面上流行的编辑器众多,根据自己的需求选择适合自己.p小白可以选择pycharm配置简单功能强大使用起来省时省心,对初学 ...

  3. python wx窗口无法关闭_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题…...

    针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...

  4. python游戏小项目简单_[简单学Python] 通过一个小游戏完成Python入门[2]变量和赋值...

    变量和赋值 到这里,你已经成功地打印出了千寻的名字和卖身契.与此同时,千寻也成为了汤婆婆的工人,渐渐地,她忘记了自己是谁,遗失了自己"姓名"的信息. 那么,在信息纷繁的代码世界里, ...

  5. python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...

    从4月21日起,大陈开始教初一的学生学Python,目前已经上了2节课.学生基本掌握了表达式的构建以及赋值语句.变量的使用,以及input(输入函数).print(输出函数)的使用方法. 以下是大陈在 ...

  6. 学python还是java贴吧_是学python还是java?一张图告诉你!

    物联网硬件开发 - 零基础学习电子产品设计 - 创客学院直播室​www.makeru.com.cn Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷 ...

  7. Python学习入门9:如何高效学Python?

    如果你一直想学Python,但是不知道如何入手,那就别犹豫了.这篇文章就是为你写的. 疑问 随着数据科学概念的普及,Python这门并不算新的语言火得一塌糊涂. 因为写了几篇用Python做数据分析的 ...

  8. 学了python能找人吗_只学python能找工作吗

    Python掀起了一股外行人的学习热潮,简单易学,又无所不能.信誓旦旦报了培训班,亦或是购买了课程自学,一段时间后自认为掌握了Python,出去找工作却碰了一鼻子灰.到底是怎么一回事呢? 半路出家学弹 ...

  9. python实现素数筛选法_从零开始学Python系列-第6讲:循环结构

    应用场景 我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景.例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令.在这个场景 ...

最新文章

  1. android webview 自定义404错误页面!
  2. vant图标怎么显示不出来_U盘插进电脑但不显示怎么解决
  3. snakebar 的使用
  4. Raspberry Pi 4B 部署 YOLOX
  5. Spring远程调用技术1-RMI
  6. atan与atan2的区别
  7. EE Servlet 3:使用会话和过滤器开发用户登录
  8. tortoisesvn创建部署项目_FrameWork如何进行云托管部署
  9. 德不配位,势必遭殃!人事斗争,劝你不要参与!
  10. 2021抚顺高考成绩查询,2021年抚顺高考成绩排名及成绩公布时间什么时候出来
  11. C语言fwrite()与Java writeFloat()数据转换
  12. Android-path类整理
  13. jquery name选择器_【百战程序员从开始到植发】之jquery
  14. python学习手册 简记
  15. 关于Cookie在顶级域名、二级域名和三级域名之间共享的情况
  16. 为老电脑装linux系统
  17. mybatis-plus中Constants.WRAPPER的导入包
  18. PopupWindow 监听返回键
  19. spring的IOC类图
  20. python屏幕录制与回放_使用Python来做一个屏幕录制工具的操作代码

热门文章

  1. 影视后期制作学习第三天(AE)
  2. 摄影实用入门-EOS 750D
  3. 为什么数据库中某一列全部是memo?
  4. 基于JAVA社区医疗服务管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  5. 脑电EEG静息态数据重新分段
  6. 夜光 带你走进 Java基础编程实战(十六 Applet编程)
  7. 27.openssl编程——OCSP
  8. Orac and Factors
  9. woge.xyz index.php,ghowoght
  10. 基于CNN卷积神经网络的人脸识别