python论文
- 格式:doc
- 大小:31.50 KB
- 文档页数:5
浅谈我眼中的python吴凡摘要:作为一门非常有潜力的高级语言,python正在编程上发挥着越来越大的作用。
这学期,通过对python基础知识的学习,对python有了一定的认识。
同时和已经学习的高级语言C和C++有了一定的对比,以及笔者对未来python的学习方向。
本文仅仅是个人的观点和看法,笔者水平有限,如有出错之处,敬请谅解。
正文:一、关于python编程的特点以及编程过程中的心得python给我最初的印象便是简洁。
所有的变量都不需要定义,想用就用,这给了编程者很大的自由空间。
如a=3,即可同时完成变量的定义和赋值。
对于简化程序的代码,起到了很大的作用!库很多,博大精深。
这样形容python最恰当不过了。
正因为其强大的库,让编程不再艰难。
我们只需要调用库中的函数,而对于函数的具体实现,没有特殊需求,我们无需探究。
这无疑是编码者的福音。
在字符串的处理上,我们在python中感受到了简单快捷的魅力。
可以轻松分割任意一段字符串,如使用string[0:3],就可以轻松地分割出string字符串中的三个字符。
因为分割区间的任意性,字符串处理起来也就得心应手了。
再如,对于两端字符串的叠加,可以轻松使用S1+S2来实现。
在字符串的替换,迭代,以及大小写的转换上,都有相应的库函数用来方便地实现。
由于python输出机制自带换行机制,因此如不需要换行,要在语句的后面加上逗号,刚刚编程时,有时会遇到问题。
列表的使用方便了数据的批量处理。
印象最深刻的就是list.reverse(),直接就可以将列表的数据逆置。
字典,能够很好的处理任意长度、混合类型键值对的能力。
在统计一段文章中的词频,和某段话中字母的频率时,很方便。
配合相关的文件操作,可以对文本文件进行数据的统计。
在函数的使用上,由于python简化了使用方法。
在函数的定义上,不需要给出相应的数据类型,形参表很简明。
在返回值的时候,也更加的灵活,具有很强的操作性。
其它基本的使用方法与其它语言类似,这给编码者最快的速度适应这门语言。
图形编程也是python的一大亮点。
通过graphical库的使用,可以很方便的实现图形界面的编程。
最让我印象深刻的是在控制窗口的颜色函数setBackground(color)中,可以使用已有的颜色作为参数。
也可以通过改变rgb(,,,)的参数进而实现各种新颜色的体现。
写完这段程序,运行时,我很是激动。
虽然技术含量并不是很高,但由于以前的编程完成后都是黑框框,这次可以得到炫彩的颜色也是非常高兴的。
此外,在类的实现中。
在定义构造函数的时候,两边的下划线是由两个组成,在编程时极易发生错误,从而造成程序报错,还很难发现。
在定义各类函数的时候,程序的主要执行函数,如main(),要在程序末尾添加main(),否则程序无法运行。
而且由于python简化了分号以及各类括号的使用,所以必须遵循严格的格式对齐。
格式的错乱会造成程序的严重问题,这就要求编码者能拥有好的习惯。
而且,格式的对齐有利于增强程序的美观性,也便于自己和他人进行阅读。
在各种包含类语句后,如for 语句,if语句,由于取消了大括号的存在,需要加上分号,否则程序出错。
由于之前C编程的习惯,总是忘记加上分号和在语句的末尾不自觉的加上分号。
但随着编程题目的增多,这一问题得到了显著的改善。
二、python和其它高级语言(C、C++)的一些区别(1)关于变量。
在C、C++中,变量的使用需要提前定义。
尤其在C语言中,变量必须集中在前面定义,这给编程带来了诸多的不便。
虽然在C++中,变量可以随用随定义,但终究是程序员必做的一件事,当变量的使用数量达到一定的量的时候,会造成某些程度上的不方便。
Python让我们眼前一亮,想用就用,随心所欲,有了一种自由的感觉。
此外,在变量的内存理解上,python,也有不同之处。
在C中,变量在定义后,由系统分配相应大小的内存,从而进行变量的相关操作。
而在后者,则有指针的味道,有指向值的感觉。
在内存机制上,python语言与其它语言有着巨大的差别。
(2)关于循环的使用。
在C/C++中,for循环拥有强大的功能,可以实现各类循环,几乎能满足所有程序的需求。
但python在for循环上,却略显逊色,其功能不再那么强大。
Python的for循环主要依靠关键词in来实现的。
也正是因为这样,其具有特色性。
此时for循环可以有两种不同的实现方式。
第一种便是单纯控制循环次数。
比如 for i in range(10),此处控制循环进行10次,i仅仅起到控制次数的作用,这一作用与前者语言极为相似。
第二中钟,也正是python所具有的特色。
在类似于字符串的处理上,有for i in sting,此时的i具有遍历字符串的功能,对于底下循环语句的实现,有极大的方便。
在其它的循环上,如while条件循环,等等,其用法笔者认为并没有太大的区别。
(3)关于字符串的处理。
Python对于字符串的处理给程序员带来了极大的便利。
在之前的C系列编程中,只能用字符类数组对字符串进行相应的操作,步骤相对比较繁琐,而且在编程的过程中极其容易出错。
类似于char a[]的样式,在python中不复存在。
在创建一个字符串的时候,用s=’’,即可完成一个空字符串的创建。
接着将相应的内容进行添加的时候,直接用s=s+’string’,即可。
在编写一个字符串逆序的函数的时候,我深有体会。
受之前C语言的影响,笔者想用类似于指针的方式进行元素的交换。
后来突然明白,直接新建立一个空字符串,在将原字符串从后面依次加入到新的空字符串中即可。
简单的思维,简单的代码,就轻松的实现了同样的功能。
笔者深深被python所打动。
当然,如果使用字符串中的步进,将步进设置为-1,则可以更为轻松的实现字符串的逆序输出。
在字符串内元素的提取上,python同样出色。
它提供两种下标的方法,一种是从开始到后面,依次为0,1,2...这与C/C++的数组是很相似的。
还有就是,从最后往前,依次为-1,-2,-3....进行操作。
其实单纯看这两种方式,你可能觉得这没什么意思。
有意思的是这两种方法可以同时使用,同时出现。
从前往后,从后往前,极其方便的对字符串甚至数组进行相关的操作。
当然,字符串相应的一些库函数,其功能也是非常强大的,笔者在这里就不一一阐述了,书上的函数表清晰地展现了库函数的魅力。
(4)关于批量数据的处理。
众所周知,在C\C++中,对批量数据的处理,主要依靠的是相应的数组。
比如定义int a[5],char a[5],double a[5],等等,可以看到,在数组的定义时,需要加上相应的数据类型,以及定义数组的长度。
也正是由于这样,数组却显得有些死板,不够灵活。
这是因为系统需要分配相应的空间给已经定义的数组,这是由其内存机制所决定的。
因此,独特的内存机制造就了python强大的灵活性。
之前的这些数组中只能存放单一数据类型,并且一般其长度是有限的。
虽然动态数组可以解决这一问题,但使用起来不方便使得许多人望而却步,往往不能很好的使用动态数组进行操作。
而对于链表的使用,笔者认为也不是很方便,至少我用起来感觉很是麻烦。
宁愿使用大一点的数组进行数据的存放,浪费一点内存空间,我都不愿意使用动态数组或者是链表进行相应的操作。
而在python的学习中,我看到了曙光。
列表,一个崭新的名词出现在我的眼前。
直接使用,无需定义大小等等。
笔者很是享受这样的过程,首先定义一个空的列表,接着利用其中的库函数append(),将数据进行末尾添加,从而实现一个数组的产生。
当然,在这里说的数据已经不单单是一种类型的数据了,int,double,char,等等,都可以混杂在同一个列表中,此时的列表不再单一,而是一个各种数据都有的一个集合体。
正是混杂,带来了灵活。
在一些信息管理系统的编写上,这样的列表给程序员带来了福音!使用二维列表,每个成员对应一个列表,将其所有的信息进行相应的压缩,在调用的时候就显得很简单了。
再加上下标可以灵活的使用,我们的管理系统就可以方便快捷的实现了!此外,在类型之间的转换上,笔者也深有印象。
你如一段字符串”Python is an excellent language”,通过split(),函数,就可以直接转换成一个列表。
感觉真的好神奇。
(5)面向对象编程。
python语言是一种既支持面向过程又支持面向对象的程序设计语言。
因此,面向对象的程序设计方法在python中也有着很好的体现。
在C++中,对象是极其重要的,以对象为核心的程序是C++的主力军。
类,是面向对象的具体表现。
在前者语言中,类中主要包括private,public,protected,等成员类型,而python中则不需要明确指出。
在构造函数上,前者语言用与类名相同的名字,分为无参数和有参数的构造函数,并且系统也会提供相应的默认构造函数,当然是在编程者未提供相应构造函数的时候。
在python中构造函数的定义形式为def __init__(self, , ,),此处值得注意的是,下划线是由两个组成,容易造成编程者的忽视。
这里的self可以当成this指针来理解。
在C++中,类提供一个,默认的this 指针,用于指向当前操作对象,从而有效地避免了各个对象之间的数据混乱。
在python语言中,self具有相似的功能。
构造函数在赋值的时候,以这样的形式进行赋值:=name,当然这里前后的名字是可以不相同的。
此外,在类对象的定义上,python也有所不同。
具体形式为:objectstudent=Student(“zhang shan”,127,228)。
C++中的主要形式:Student object(“zhang shan”,127,228),在python中是不适用的,笔者刚开始使用python 进行类的编写时,以C++的形式,程序报错,无法运行,这可能与其类中构造函数的特殊性有关。
在类中其它公有函数的定义上,形式参数表中仍然需要有self的出现。
如,def getName(self):return ,而在C++中,只需要直接写,无需参数。
如,int getAge(){return age;}即可。
因此在使用方法上,略显不同。
三、个人学习方向笔者对网络比较感兴趣。
说实话,算法确实很有用,是程序的核心,但我更喜欢具有直接实际意义的事物,因此我比较倾向于网络方面。
而我感觉python 在网络方面的应用是非常巨大的,其功能也是很强大的。
目前我首先接触的是python的socket库。
自我感觉是个很神奇的库。
在打印设备名和IP4地址、获取远程设备的IP地址上,socket库提供了简单高效的操作。
在打印设备名和IP4地址时,首先import socket 语句导入python提供的一个核心网络库。