【Python 星球1.0】 Python简介
文章目录关于 Python名字背后的故事Python 的特点简单易于学习免费开源高级语言可移植解释性(和编译性相对)面向对象可扩展可嵌入丰富的库总结Python 3 和 Python 2 的对比程序员说的话廖雪峰聊python关于 PythonPython 是少数的几种既 简单 又 强大 的语言之一。你会惊喜地发现,将精力集中于问题的解决方案,而不是编程语言的语法和结构,是多么的容易!Python
文章目录
关于 Python
Python 是少数的几种既 简单 又 强大 的语言之一。你会惊喜地发现,将精力集中于问题的解决方案,而不是编程语言的语法和结构,是多么的容易!
Python 的官方介绍是:
Python 是一个易于学习、功能强大的编程语言。它拥有高效高级的数据结构和一种简单有效的面向对象编程的编程方法。Python 优雅的语法、动态类型及其解释性,使其成为一个大多数平台上许多领域中脚本编写和快速应用程序开发的理想语言。
在下一节中,我将会更加详细地讨论这些特性。
名字背后的故事
Python 语言的创作者,Guido van Rossum,以 BBC 的节目「Monty Python’s Flying Circus」来命名这种语言。他并不特别喜欢蛇,蛇把长长的身体缠绕在动物周围,把动物踩碎,以此来捕食。
Python 的特点
简单
Python 是一个极简语言。读一个好的 Python 程序就像是在读英语,虽然英语很严格! Python 的这种伪代码特性是它最大的优点之一。它能够让你专注于问题的解决方法,而不是语言本身。
易于学习
如你所见,Python 非常容易上手。正如前面所提到的,Python 具有非常简单的语法。
免费开源
Python 是一个 FLOSS (Free/Libré and Open Source Software 免费 / 自由和开源的软件) 的例子。简单来讲,你可以自由发布软件的副本,阅读它的源代码,对其进行修改,并且在新的免费程序中使用它的部分内容。FLOSS 基于共享知识社区的概念。这也是 Python 为什么如此优秀的原因之一 —— 它已经被创造出来,并且被一个只想看到更好的 Python 的社区不断改进。
高级语言
当你使用 Python 编写程序时,你永远不需要考虑低级细节,诸如管理程序使用的内存等。
可移植
由于它的开源特性,Python 已经被移植(即,为了使它能够正常工作而修改)到许多平台上。如果你足够小心地避免任何系统相关的特征,那么你所有的 Python 程序在任意一个平台上都能正常工作,而不需要做任何的修改。
你可以在 GNU/Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE 以及 PocketPC 上使用 Python !
你甚至可以使用 Kivy 这样的平台为你自己的计算机、iPhone、iPad 以及 Android 创建游戏。
解释性(和编译性相对)
这需要一些解释。
用 C 或 C++ 等编译语言编写的程序,通过使用带有各种标志和选项的编译器,从 C 或 C++ 的源语言转换为计算机所使用的语言(二进制代码,即 0 和 1)。当你运行程序时,链接器 / 加载器软件把程序从硬盘复制到内存中并开始运行。
另一方面,Python 不需要编译成二进制。你可以直接从源代码 运行 程序。在内部,Python 会转换成一种被称为字节码的中间形式,然后将字节码转换成你的计算机的机器语言,然后运行它。 实际上,所有的这些操作使得 Python 更加易于使用,因为你不必去担心如何编译程序,也不必担心如何确保合适的库已经被连接和被加载等等。这也让你的 Python 程序更加具有移植性,因为你可以把你的程序复制到另一台计算机上,它依然可以正常工作!
面向对象
Python 既支持面向过程的编程又支持面向对象的编程。在 面向过程 的语言中,程序围绕着过程或者函数构建。在 面向对象 的语言中,程序围绕结合数据和方法的对象构建。Python 有一种非常强大又极其简单的 OOP 方法,特别是与 C++ 或者 Java 等大型语言相比而言。
可扩展
如果你需要一个关键的代码段使你的程序运行的更快,或者你不想公开某段算法,那么你可以使用 C 或者 C++ 编写程序的这一段代码,然后从 Python 程序中使用它。
可嵌入
你可以将 Python 嵌入到你的 C/C++ 程序中,为程序的用户提供 脚本 功能。
丰富的库
Python 标准库确实非常大。它能帮你做各种各样的事情,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、加密、GUI(图形用户界面)以及其它系统相关的东西。记住,只要安装了 Python ,所有的这些都可以使用。这就是所谓的 Python 的 内置电池 哲学。
除了标准库以外,你还可以在 Python 包索引 中找到其它各种高质量的库。
总结
Python 确实是一个让人兴奋又功能强大的语言。它将性能和特性完美地组合在一起,使得用 Python 编程既有趣又简单。
Python 3 和 Python 2 的对比
如果你对「Python 2」和「Python 3」之间的区别不感兴趣,你可以忽略此部分。但是,请注意你使用的是哪个版本。本书是为 Python 3 编写的。
要记住,一旦你正确理解并学会使用一个版本,那么就可以很容易地理解两个版本之间的区别并学会另一个版本。 难点在于学习编程并理解 Python 语言本身的基础知识。这是我们在这本书中的目标,一旦你实现了这个目标,你就可以根据你的实际情况轻松使用 Python 2 或者 Python 3。
有关 Python 2 和 Python 3 之间区别的详细内容,请参阅:
Python 2 的未来
将 Python 2 代码移植到 Python 3
编写能够在 Python2 和 Python 3 下运行的代…
支持 Python 3:深度指南
程序员说的话
你可能会发现阅读像 ESR 这样伟大的黑客对 Python 的看法很有意思
Eric S. Raymond 是「大教堂和集市」的作者,也是 开源 一词的发明者。他说 Python 已经成为他最喜欢的编程语言。这篇文章是我第一次接触 Python 的真正灵感。
Bruce Eckel 是著名的 'Java 思维 ’ 和 ’ C++ 思维 ’ 的作者。他说没有一种语言比 Python 更能提高他的工作效率。他说 Python 也许是唯一一种专注于让程序员更方便语言。请阅读 完整访谈了解更多详情。
Peter Norvig 是谷歌有名的 Lisp 作家和搜索质量总监。(感谢 Guido van Rossum 指出这一点)。他说 编写 Python 就像是编写伪代码。他说 Python 一直是谷歌不可分割一部分。实际上,你可以通过查看 Google Jobs 网页来验证此声明。该网页将 Python 知识列为软件工程师的必要条件。
————————————————
廖雪峰聊python
当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。
Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。
除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。
许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。
龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。
那Python适合开发哪些类型的应用呢?
首选是网络应用,包括网站、后台服务等等;
其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;
另外就是把其他语言开发的程序再包装起来,方便使用。
最后说说Python的缺点。
任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?
第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。
但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。
第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。
这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。
再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
请问Python之父Guido van Rossum是:
- 美国人
- 中国人
- 荷兰人
- 芬兰人
- 地球人
更多推荐
所有评论(0)