python 作为一门高级编程语言, 它的诞生虽然很偶然, 但是它得到程序员的喜爱却是必然之路.
image
image
Python 的定位是 "优雅","明确","简单", 所以 Python 程序看上去总是简单易懂, 初学者学 Python, 不但入门容易, 而且将来深入下去, 可以编写那些非常非常复杂的程序.
python 语言的优点
1作为初学 python 的科班出身的小白, python 非常简单, 非常适合人类阅读. 阅读一个良好的 Python 程序就感觉像是在读英语一样, 尽管这个英语的要求非常严格! Python 的这种伪代码本质是它最大的优点之一. 它使你能够专注于解决问题而不是去搞明白语言本身.
2易学. python 虽然是用 c 语言写的, 但是它摈弃了 c 中非常复杂的指针, 简化了 python 的语法.
3Python 是 FLOSS(自由 / 开放源码软件) 之一. 简单地说, 你可以自由地发布这个软件的拷贝, 阅读它的源代码, 对它做改动, 把它的一部分用于新的自由软件中. Python 希望看到一个更加优秀的人创造并经常改进.
4可移植性 ---- 由于它的开源本质, Python 已经被移植在许多平台上 (经过改动使它能够工作在不同平台上). 如果你小心地避免使用依赖于系统的特性, 那么你的所有 Python 程序无需修改就可以在下述任何平台上面运行. 这些平台包括 Linux,Windows,FreeBSD,Macintosh,Solaris,OS/2,Amiga,AROS,AS/400,BeOS,OS/390,z/OS,Palm OS,QNX,VMS,Psion,Acom RISC OS,VxWorks,PlayStation,Sharp Zaurus,Windows CE 甚至还有 PocketPC,Symbian 以及 Google 基于 Linux 开发的 Android 平台!
5在计算机内部, Python 解释器把源代码转换成称为字节码的中间形式, 然后再把它翻译成计算机使用的机器语言并运行. 事实上, 由于你不再需要担心如何编译程序, 如何确保连接转载正确的库等等, 所有这一切使得使用 Python 更加简单. 由于你只需要把你的 Python 程序拷贝到另外一台计算机上, 它就可以工作了, 这也使得你的 Python 程序更加易于移植.
6Python 既支持面向过程的函数编程也支持面向对象的抽象编程. 在面向过程的语言中, 程序是由过程或仅仅是可重用代码的函数构建起来的. 在面向对象的语言中, 程序是由数据和功能组合而成的对象构建起来的. 与其他主要的语言如 C++ 和 Java 相比, Python 以一种非常强大又简单的方式实现面向对象编程.
7 可扩展性和可嵌入性. 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开, 你可以把你的部分程序用 C 或 C++ 编写, 然后在你的 Python 程序中使用它们. 你可以把 Python 嵌入你的 C/C++ 程序, 从而向你的程序用户提供脚本功能.
8丰富的库. Python 标准库确实很庞大. python 有可定义的第三方库可以使用. 它可以帮助你处理各种工作, 包括正则表达式, 文档生成, 单元测试, 线程, 数据库, 网页浏览器, CGI,FTP, 电子邮件, xml,xml-RPC,html,WAV 文件, 密码系统, GUI(图形用户界面),Tk 和其他与系统有关的操作. 记住, 只要安装了 Python, 所有这些功能都是可用的. 这被称作 Python 的 "功能齐全" 理念. 除了标准库以外, 还有许多其他高质量的库, 如 wxPython,Twisted 和 Python 图像库等等.
9 Python 确实是一种十分精彩又强大的语言. 它合理地结合了高性能与使得编写程序简单有趣的特色.
10规范的代码. Python 采用强制缩进的方式使得代码具有极佳的可读性.
python 语言的缺点
很多时候不能将程序连写成一行, 如 import sys;for i in sys.path:print i. 而 perl 和 awk 就无此限制, 可以较为方便的在 shell 下完成简单程序, 不需要如 Python 一样, 必须将程序写入一个. py 文件.(对很多用户而言这也不算是限制)
1运行速度, 有速度要求的话, 用 C++ 改写关键部分吧. 不过对于用户而言, 机器上运行速度是可以忽略的. 因为用户根本感觉不出来这种速度的差异.
2既是优点也是缺点, python 的开源性使得 Python 语言不能加密, 但是目前国内市场纯粹靠编写软件卖给客户的越来越少, 网站和移动应用不需要给客户源代码, 所以这个问题就是问题. 不过随着时间的推移, 很多国内软件公司, 尤其是游戏公司, 也开始规模使用他.
3 构架选择太多 (没有像 C# 这样的官方. net 构架, 也没有像 Ruby 由于历史较短, 构架开发的相对集中. Ruby on Rails 构架开发中小型 web 程序天下无敌). 不过这也从另一个侧面说明, python 比较优秀, 吸引的人才多, 项目也多.
来源: http://www.jianshu.com/p/1ecc705bb342