早就听说Python很强大,一直没有接触过。最近花了些时间学习了一下,发现果然是非同一般,相比于其他语言确实有其特点、有其优点。以前一直是用C++,看了Python之后,发现该语言确实要简洁且灵活很多,实现同样的功能,代码量确实会比用C++实现少不少。而且,Python有很多实现不同功能的包,既有官方的也有第三方的,使用起来确实方便,比如Python的网络编程功能就很强大,用它来实现socket、http连接、url分析、爬虫等都很方便。这只是我作为Python初学者、Python菜鸟的一些初步认识和感触,具体的情况还需要进一步学习才能知晓。下面根据我入门学习Python的过程跟初学者分享一些建议。
首先,可以找一本关于Python的入门级的书籍或教程,学习Python的语法和使用方法。
我最开始看了一本入门级的书籍《Head First Python》概述浅显易懂,而且是边学语法边实践,举的例子也很有意思。然后,在网上找了一个非常好的入门级教程http://www.tutorialspoint.com/python/index.htm,tutorialspoint网站上有很多语言的入门教程,个人感觉tutorialspoint做的教程非常好,很全面、精炼,非常适合快速学习和了解。
第二,阅读Python官方网站的教程(例如3.2版本的教程:http://docs.python.org/3.2/tutorial/index.html)
这个教程应该是最为权威和详细的,适合全面学习Python语言,在入门或者说对Python有一些片面的了解之后,来仔细读一遍该教程是非常值得的。
第三,随时查阅Python官方文档(例如3.2版本的文档:http://docs.python.org/3.2/index.html)
Python的官方文档是非常权威和全面的,包括怎么安装、怎么安装Python模块、发布Python模块、教程、API查询等等,非常的强大!真的非常佩服老外做的东西,非常喜欢老外办事的风格,“服务周到”啊。
我这里想强调的是API查询功能,刚开始用Python,肯定对Python的内置模块、API等不熟悉,看到一个模块或者函数以后可能不知道他的功能,或者使用方法,这个时候一定要想到去查询官方文档,网页的左边有一个Quick Search,在这里输入要查询的东西即可。在此强调,在学习和使用Python的过程中,随时来查询官方文档。
第四,找实际的程序或者项目动手实践,或者阅读他人的代码
光看书籍或者语法基础是不能真正掌握语言的,要动手实践。首先可以找一些他人编写的程序来学习,或者自己动手来写一些程序实现一定的功能。这个就比较广泛了,看自己对什么类型的程序感兴趣,就可以到网上搜索,例如可以用网络方面的:Python来调用新浪微博的API、Python爬虫、Python做web开发,界面方面的:Python来写GUI程序等。另外,推荐一个网站:Python开发者社区,上面会有一些分享的Python小程序,可以当入门练习。
第五,阅读一本比较深入和全面的Python书籍,例如《Python核心编程》等
(本人还没有做这一步)
一个windows下好用的IDE:Aptana
http://www.aptana.com/
【python正则表达式】
http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97
http://docs.python.org/2/library/re.html?highlight=re#re
【Python字符编码&中文问题】
http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html
【Python中的函数修饰符'@'】
http://www.cnblogs.com/xupeizhi/archive/2013/02/07/2908600.html
【os.name】
The name of the operating system dependent module imported. The following names have currently been registered: 'posix', 'nt', 'os2', 'ce', 'java', 'riscos'
【打印错误的栈信息】
import traceback
print >> sys.stderr, traceback.format_exc()
【强大的命令行参数处理——OptionParser模块】
http://blog.csdn.net/lwnylslwnyls/article/details/8199454
【easy_install的用法】
1) 安装一个包
$ easy_install <package_name>
$ easy_install "<package_name>==<version>"
2) 升级一个包
$ easy_install -U "<package_name>>=<version>"
【pip的用法】
1) 安装一个包
$ pip install <package_name>
$ pip install <package_name>==<version>
2) 升级一个包 (如果不提供version号,升级到最新版本)
$ pip install --upgrade <package_name>>=<version>
3)删除一个包
$ pip uninstall <package_name>
【判断数据的类型】
利用Python提供的type函数判断数据的类型,例如:
a = {}
b = 3
if type(a).__name__ == 'dict': #yes
if type(b).__name__ == 'int': #yes
type(*)返回的是type对象,要进行字符串比较的话需要用其成员__name__。
【del删除变量】
You can delete a single object or multiple objects by using the del statement. For example:
del var
也可以用来删除list中的数据,例如:
$ li = [0,1,2,3,4]
$ del li[2]
$ li
[0, 1, 3, 4]
【Python列表方法的三驾马车】
python内置函数map/reduce/filter,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并,是python列表方法的三架马车。(http://jeffxie.blog.51cto.com/1365360/328207)
【Python中的列表解析】
python列表解析属于python的迭代中的一种,相比python的for循环速度会快很多。下面看下python列表解析是怎么工作的。
example:
a = [x+2 for x in range(10)]
print a
输出的结果:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
【string的连接功能】
str.join(iterable)将多个string用str作为分隔符连接起来,很神奇的函数。
Return a string which is the concatenation of the strings in the iterable iterable. The separator between elements is the string providing this method.
【Python的序列化——pickle模块】
可以用Python的pickle模块进行数据的序列化,可以轻松的将内存数据保存到文件,或从文件读取到内存。简单使用时只需调用两个函数dump和load就可以搞定,同时需要传入打开的用于读写的文件对象。可以参考:http://www.cnblogs.com/pzxbc/archive/2012/03/18/2404715.html
【list的index函数可以获取元素的序号】
有时候需要反过来通过元素的值获取其在list中的序号,可以通过index函数。例如:
li = [1,2,3,4,5]
li.index(2) //等于1,即元素2的序号
li = ['hello', 'my', 'name', 'world']
li.index('name') //等于2