Python的特色
Python是一种支持面向对象的解释性高级语言,简单易学,是一种代表简单主义思想的语言。当然它简约却不简单,它有强大的标准库支持,只要安装了 Python,它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、FTP、电子邮件、WAV文件、密码系统、 GUI和其他与系统有关的操作,可以让我们在短时间之内实现你想要的程序。Python的代码密度很高,变量可以不声明就使用,弱类型特性灵活高效。它也有很强的可扩展性与可嵌入性。可以轻松的将部分程序用C或C++编写,然后在你的Python程序中使用它们。或者你也可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。然而Python采用严格的缩进方式来管理代码,写代码时要求程序员有良好的format意识,不过同时它也提高了可读性,阅读一个良好的Python程序就感觉像是在读英语一样,读一段伪代码,使你能够专注于解决问题而不是去搞明白语言本身。总之,无论你是一个资深的程序员,或是一个新新人类都能快速的上手,所以它也特别适用于快速的应用程序开发。
安装Python
Linux和BSD用户:测试你的Linux或BSD系统是否已经安装了Python,可以打开一个shell程序(就像konsole或gnome-terminal)输入如下所示的命令python -V
如果已经安装将会显示已安装Python的版本信息,否则将会提示“bash: python: command not found”,那么你可以通过系统附带的管理软件安装二进制包,类似于yum,或者pkg_add等,当然也可以直接下载二进制包或者从从源代码编译 Python然后安装。
windows用户:测试你的windows系统是否已经安装了Python,同样可以在命令提示窗口中输入如下所示的命令python -V
如果已经安装将会显示已安装Python的版本信息,否则将会提示“‘python’不是内部或外部命令,也不是可运行的程序或批处理文件”,那么可以下载Python-2.3.4.exe,安装完成之后,在系统变量path中添加python的安装目录。
最简单的python运行脚本
我们可以使用IDLE(Python GUI)或使用源文件运行Python程序。
来个最简单也是大家最喜欢的hello world吧,呵呵。
也可通过VIM或者EMACS等编辑器编辑Python代码,以.py为扩展名,通过python helloWorld.py执行Python脚本。例如:
常用Python IDE
Python现在各类已经非常多了,Python自带的IDLE(Python GUI)用起来也挺不错的,或者一般linux用户也习惯于使用VIM或者EMACS编程,不过因为我一直偏重于JAVA的开发,所以再推荐一个 Python IDE:PyDev,这个对于用惯了Eclipse的人来说使用起来就相当的得心应手了。
Eclipse –> Help –>Install New SoftWare中添加下面这个站点,下载PyDev即可。http://update-production- pydev.s3.amazonaws.com/pydev/updates/site.xml
下载完成之后再配置一下Python解析器就可以创建Python工程,编写调试代码了。
分享在做python项目过程中收藏的小贴士:
在做项目的过程中,我会习惯性的收集一些自己曾经犯过的小错误贴在自己的blog或者学习手册里面,很多时候这些小错误其实都很简单但可能就因为简单反而屡教不改。贴一些出来跟大家一起分享。
1. help
无论多么成熟优秀的程序员,在学习使用一门开发语言之初都应该先学如何快速查找帮助信息。要查找某个Python函数或语句的帮助信息,可以使用内 建的help功能。例如: help(’str’)将会显示str类的帮助信息,help(‘cPickle’) 将会显示cPickle类的帮助信息。
2. 缩进
Python中行首的空白(空格和制表符)是重要的,逻辑行的缩进层次用来决定语句的分组,同一层次的语句必须有相同的缩进。每一组这样的语句称为 一个块。要严格使用制表符,2个空格或者4个空格,要想写出一手漂亮清晰的Python代码,对空白字符的使用一定要养成良好的习惯。例如:
正确:
错误:
3. Python中函数的可变参数
带*的参数就是用来接受可变数量参数的。例:
执行结果:
如果一个函数定义中的最后一个形参有**(双星号)前缀,所有正常形参之外的其他的关键字参数都将被放置在一个字典中传递给函数,例:
执行结果:
4. 使用三引号(”’或”"”)
利用三引号,可以指示一个多行的字符串,可以在三引号中自由的使用单引号和双引号。
5. Python重载
Python方法重载:大部分开发语言如JAVA对于方法重载主要是根据参数的类型或是数量不同来区分同名的方法。而Python则比较特殊,它本 身是动态语言,方法的参数是没有类型的,当调用传值的时候才确定参数的类型,故对参数类型不同的方法无需考虑重载。对参数数量不同的方法,大多情况下可以 采用参数默认值来实现。例:
Python运算符重载:在 Python中,每一个类都默认内置了所有可能的运算符方法,只要重写这个方法,就可以实现针对该运算符的重载。例:
6. 转义符(\)和自然字符串
同JAVA等很多种开发语言中一样,\可以转义例如’,‘’这样的特殊字符,但是在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:
如果你想要指示某些不需要如转义符4那样的特别处理的字符串,类似于<![CDATA[ ]]>,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。自然字符串在处理正则表达式的非常有用,否则会需要使用很多 的反斜杠,读起来很不舒服。例如:
7. 含有0个或1个项目的元组
一个空的元组由一对空的圆括号组成,如myempty = ()。然而,含有单个元素的元组必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。例:一个包含项目2的元组,singleton = (2 , )。
8. 序列的引用与拷贝
注:shoplist[0:len(shoplist)-1]等价于shoplist[:],数字可以省,但是冒号不可省。
Python里对列表的使用千奇百怪,再看一个:
执行结果:
9. int类型
即便是整数也被作为对象(属于int类)。这和C++、Java不同,通过help(int)了解详情。
10. import..as
这是一种便利方法,以便于我们可以使用更短的模块名称。例如:
import cPickle as p
11. 一些特殊方法
__init__(self,…):在对象刚被创建时调用,类似于构造函数。
__del__(self):对象要被释放时调用,类似于析构函数。
__str__(self):在对象使用print语句或是使用str()的时候调用,类似于JAVA中的toString()。
__getitem__(self,key):使用x[key]索引操作符的时候调用。