转载务必注明出处Taobao QA Team,原文地址:http://qa.taobao.com/?p=11027


好久没有看Python了,最近常听人提起,于是又回去翻了翻,复习了一把。随意整理些小东西出来跟大家分享分享,有机会也欢迎感兴趣的朋友一起来聊聊。记得当初刚开始接触Python的时候我还是一名刚从学校毕业的新晋员工,当时一心只想着跟个厉害的老大做C或者JAVA的开发,对Python是什么东西完全不了解甚至不曾听说过,作为一个新人有气又不敢出只觉着被欺负了,于是就这么带着一肚子的委屈开始了一个关于软件工程管理系统的开发,同时也开启python的探索之门。Python是一种相对很简单的脚本语言,对于一个新人来说,学习起来几乎没什么难度,只是当初可以参考的资料实在太少,就是英文资料也是稀稀落落的残缺不齐的,现在再重新捡起来发现竟已是欣欣向荣了。

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]索引操作符的时候调用。


更多相关文章

  1. 在Python中强制使用函数参数类型?
  2. python 字符串操作
  3. python中函数参数传递的几种方法
  4. 为什么Python的eval()拒绝这个多行字符串,我如何修复它?
  5. Python3语法——Python3函数参数的各种形式
  6. python 中 字符串转换为数组,字典或表达式
  7. python 函数、参数及参数解构
  8. Python多行正则表达式忽略字符串中的n行
  9. 简单的python爬取网页字符串内容并保存

随机推荐

  1. android自定义布局中的平滑移动
  2. Java讲师与Android讲师通缉令--悬赏2000
  3. Android 开发者必备的十个工具
  4. android 进程之间通信--Android 使用【AI
  5. Android开发中的游戏开发使用View还是Sur
  6. 【Android】android镜像翻转
  7. Android学习07-----事件处理(1)单击事件_
  8. Android 中文 API――android.widget合集
  9. Android中级教程之--------Android应用程
  10. Android全屏,隐藏状态栏和标题栏