Python 简介
Python是一种程序设计语言。在应用广泛的各种语言中,Python可能是最容易学习和使用的语言,它易于阅读和理解,语法简洁清晰,表达力强。使用Python编写程序,所需要的代码量要远少于C++、Java之类的语言。
Python的作者,Guido von Rossum,荷兰人。1989年他为了打发圣诞节假期,开始开发Python语言的编译/解释器。Python这个名字源于当时他正在看的英国电视剧《Monty Python's Flying Circus》。他希望这个语言能实现他的理念:易学易用,介于C和Shell之间,功能全面,可扩展的语言。
使用Python编写程序时,一般无需关心计算机的工作机制,只需要将精力放在程序逻辑上。它的历史比Java悠久,具有广泛的应用。这种语言的用户不仅仅是计算机专家,还有计算机爱好者、学生(包括文科生)、科学家、工程师。如果你想掌握一种编程语言,用来快速实现想法或者让计算机自动完成一些工作,Python是一个不错的选择。
Python是面向对象的程序设计语言。当然,你也可以用于面向过程的程序设计,甚至是一定程度的函数式编程。Python的强大之处在于它拥有一个强大的标准库,只需要几行代码,你就可以完成文件下载、压缩解压、网络通信、建立Web服务器等等看起来非常强大的功能。
当然,开发效率和运行效率往往不可兼得。Python的缺点就是运行效率低。如果一个C语言程序运行需要1秒,Java需要2秒,而Python可能需要100~200秒。[1] 不过,在大多数使用场合,这样的运行效率已经足够了。
Python的第三方库中,有一部分使用C语言编写而成,它们的运行效率并不低。如果你需要完成一些计算量庞大的任务,可以使用C、C++来编写动态链接库,甚至使用CUDA、OpenCL利用GPU完成计算。
Python2 与 Python3
去年,作者学习并使用了Python2.7。Python2.x和Python3.x之间存在许多差异,所以Python2.x的库和代码不能直接用于Python3.x。在使用Python2.7的过程中,作者发现Python2.7有一些坑爹的地方,例如:
其实许多问题是历史遗留问题,是设计上的失误。这些问题在Python3中被修复了。由于许多公司的老项目迁移到Python3需要巨大的成本,所以短期内Python2依然是主流。但Python2已经停止了新特性的开发,目前的更新主要为修复BUG。并且,许多第三方库陆续支持了Python3。对于初学者,学习Python3可以绕过许多Python2的坑,不会被Python2的种种缺陷所困扰,并且还可以直接使用Python3的新特性。[2] 总之,Python3学起来爽,用起来更爽。
如果你现在不会Python,或许,当你真正用Python来工作的时候,Python3已经是主流了。
因为作者平时使用Python写的都是一些自己使用的程序,于是打算学习更好用的Python3。作者决定:一边学习,一边编写教程。
什么情况下应该选择Python2呢:
- 你要使用的库只能在Python2.x中工作
- 你被强制使用Python2.x
- 你使用的运行环境仅提供Python2.x
Python2的语法和Python3相似,在需要的时候,学会了Python2可以快速掌握Python3,反之亦如此。只需了解两者的区别即可。[3]
如果你有这样的疑问:为了工作,应该学Python2还是Python3?
答案是:都学。
其实两者的差距没有想象中的那么大。
截止至本文写作时,Python2的最新版本是2.7.11,Python3的最新版本是3.5.1。
[1]: Python3比Python2还要慢。
[2]: Python2中可以通过__future__模块来使用新特性。
[3]: 会遇到好多坑
print("hello moe shadow")
(这可不是我写的)