1.优缺点

优点:
1.简单易学:
Python阅读一个良好的Python程序就感觉像是在读一篇文章一样。
2.开发效率非常高:
Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
3.面向对象:
Python语言编程思想更加符合我们人的逻辑思维,而不用再像C语言那样去理解计算机运行思维。并且无需考虑如何管理你的程序使用的内存一类的底层细节。更加注重我们的业务逻辑。
4.免费、开源:
你可以自由的阅读它的源代码、对它做改动。Python希望由更加优秀的人来继续改进和创造Python。
5.可移植性
由于它的开源本质,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平台!
6.可扩展性
如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
7.丰富的库
Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted(是用Python实现的基于事件驱动的网络引擎框架)和Python图像库等等。
缺点:
1.运行速度慢
Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,但是在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
2.中文资料缺乏
好的python中文资料屈指可数
3.线程不能利用多核
这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。

2、Python语言类型

编程语言分为编译型和解释型语言,Python属于解释型语言。
首先我们需要知道我们在电脑上写的内容保存到电脑上的时候在磁盘上保存的形式都是二进制01010这种形式来保存。当我们再次打开文件的时候,电脑会将二进制数据转换为我们可以看懂的内容,呈现到我们面前。同样我们的代码都是使用英文来编写的,当我们运行我们写的程序的时候,同样需要将我们写的代码翻译成二进制数据给电脑运行。因此我们需要一个翻译工具将我们写的代码(源码)翻译二进制文件。我们将这个翻译工具称之为编译器。
我们根据编译器对源码的翻译方式不同,把编译器分成了两种类型一种类型是编译器,一种是解释器。
使用编译器编译的语言我们叫做编译型语言,使用解释器解释的语言叫做解释型语言。

编译型语言执行过程:使用java开发完一个只有3行代码的程序,然后将这三行代码统一交给编译器进行编译,编译成.class文件,然后交给操作系统。
当再次执行这个程序的时候,就可以直接拿刚才生成的.class运行。就不需要再把源码翻译成.class文件。因为翻译只做了一次,运行的时不要翻译,所以编译型语言的程序执行效率高。

解释型语言执行过程:使用python开发了一个3行代码的源程序,当程序运行的时候一行一行的给解释器,解释器一行一行的进行解释。这样解释性语言每执行一次要翻译一次,效率表较低。

python开发效率 python开发的优点_解释型语言


补充:

Python 是强类型的动态脚本语言。

强类型:不允许不同类型相加。

动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候。动态类型语言是一种在运行期间才去确定数据类型的语言,与静态类型相反。不需要声明类型,运行时确定类型。

脚本语言:一般也是解释型语言,运行代码只需要一个解释器,不需要编译。