关于学习编程语言的一点建议
2019-07-09高敬瑜
高敬瑜
摘 要:大学大多同学觉得学了编程语言后应该能够编写程序,可在进行小项目开发时还是无从下手,总觉得是老师讲解没有到位并失去对编程学习的兴趣。这篇文章提出针对学习编程的学习过程和步骤和应该注意的事项。
关键词:编程语言;生命周期;程序设计
一、对编程语言的初步认识
编程是用计算机语言组合成一篇具有设定功能和计算机能够识别并执行的命令集合,写作文是以某种文体表达一定内容的自然语言的组合。编程和写作文在思维方式上有某种程度的相似性。写作文之前我们必须学习预备知识,包括字词、语法、造句、逻辑、修辞。学完后也不能保证直接写出有一定质量的作文,首先阅读某种文体的范文,然后尝试着模仿、总结。编程首先要学习编程语言的数据类型、函数、语法、句型,学完之后也不能直接编写有实用功能的程序,需要阅读别人的程序,尝试模仿,逐步提高。
二、以Python语言为例来讨论编程语言学习
(一)数据类型新颖
学过Python语言的老师和同学都知道Python语言出现了像C语言、JAVA语言、PHP语言都不曾出现的数据类型,除数值计算类型中浮点类型、整型类型、布尔类型之外,新增加了复数类型、TUPLE类型、LIST类型、DICT类型和SET类型,增加的数据类型丰富了语法的内容,也同时增加了语法的灵活性。虽然在编程时降低了命令和函数的使用数量,但也增加了初学者学习编程语言的难度和困惑。那种认为Python語言是一种简单易学的语言的观念是错误的,或者说至少是不准确的。因为功能强大和语法灵活是初次学习Python语言者感到不易掌握的原因。
(二)语法灵活造成初学者理解困惑
我们以元组和列表为例讨论Python语言理解的困惑。例如:tuple001=(123,'qwe','123',(345,"qaz",'哈哈'),[567″,qaz″,666]),我们知道元组中的元素是不可更换的,即不可改变,元组tuple001中的第0个、第1个、第2个、第3个元素是不可改变的,可第4个元素又是列表构成的,列表是可以改变的,所以元组tuple001中第4个元素中的二维元素是可以改变的。这也是元组数据类型的灵活性之一。又例如,格式化输出函数 print(f′输出格式{variate} ′,end=′′),f 后边的括号内的内容应该是原样输出,但是其中的大括号内若果是变量,函数会输出变量的值。像这样的情况,我们会遇到很多,如果按照原来的定义理解,那觉得是不可思议。正是这种破坏定义的特殊性用法增加了语言语法的灵活性。
(三)数据类型之间转化的多变性
在python语言中,数据类型不但有其新颖性,而且类型之间的转化也是比较复杂的,这种复杂性更增添了python语言语言语法的灵活性,基本上所有的python语言书籍中都谈到了数据类型之间的转化,但都是枚举的方法,且大同小异,完整的转化说明也不能从书籍中总结出来,本人以python语言3.7版本针对类型各自的属性及其转化的各种情况尽可能的通过函数尝试总结出以下的表格,也许有遗漏情形和错误之处,仅供参考。
数值类不可变(内存中数据),int,bool,float,complex;文件和生成器不是序列。
(四)生成器和迭代器是重要概念
上述三行程序是在遍历中将列表中的元素加1,执行过程中enumerate()函数产生列表下标和对应的元素(值),并返回一个迭代器。利用迭代器,我们可以直接创建一个大的列表,但是占用了大量内存,假设在一个500万个元素的列表中,我们只是访问了其中的几个元素,等于白白浪费掉了大量内存。为避免这样的现象,我们要了解生成器。生成器是一个非常有用的特殊的程序,可以被用作控制循环的迭代行为,python语言中生成器是迭代器的一种,它利用用yield返回值函数,每次当调用yield会暂停,但可以使用next()函数和send()函数恢复生成器。生成器类似于返回值为数组的一个函数,这个函数可以接受参数和被调用,但不是一次性返回包括所有数值的数组,生成器一次只能产生一个值,这样内存大大减小,而且允许调用函数可以很快的处理前几个返回值,因此生成器看起来像是一个函数,但是表现得却像是迭代器。要创建一个generator,有很多种方法,第一种方法很简单,只有把一个列表生成式的[]中括号改为()小括号,就创建一个generator
三、总结
以上是学习中关于python语言基础知识的体会总结,希望对大家有所帮助。
参考文献:
[1]吕云翔.python基础教程[M].人民邮电出版社,2018.1.