Question and answer
为何使用Python
目前业内可选的编程语言很多,Python的用户量在100多万,而且在持续增长。对于开发工具的选择有时取决于特定的约束条件以及个人喜好。但是选择一门语言其实是存在共性的。
选择Python的主要因素:
- 软件质量:Python更注重可读性、一致性和软件质量。代码设计致力于可读性,具备比传统脚本语言更优秀的可重用性和可维护性。支持软件开发高可用机制。代码量小,相对于C、C++、Java来说。立即运行,无需传统的编译/运行
- 程序的可移植性:一次编写即可运行在所有主流的计算机平台
- 标准库的支持:Python内置了众多预编译并可移植的功能模块,这些功能魔铠叫标准库(standard library)。标准库支持一系列应用级的编程任务。可以通过自行开发库或选择第三方库来支持
- 组件集成:Python脚本可以通过灵活的集成机制轻松地与应用程序的其他部分进行通信。所谓的粘合剂语言
- 享受:Python强大的内置工具、易用性使编程成为了一种享受、一种乐趣而不是一种枯燥的劳动
软件质量
从设计来讲,Python秉承了一种独特的简洁和高可读性的语法,以及一种高度一致的编程模式。从哲学理念上讲,Python采用了一种所谓极简主义的设计理念。采用模块化设计、OOP在内的一些工具提升程序的可重用性。要了解完整的Python哲学理念,可以在任意一个Python交互编译器中输入import this命令。

开发效率
简洁的语法、动态类型、无需编译、内置工具包等特性使程序员能够快速完成项目开发
Python是"脚本语言"吗
Python是一门多种用途的语言,时常在扮演脚本语言的角色。一般来说,Python可以定义为面向对象的脚本语言:这个定义把对面向对象的支持和全面的面向脚本语言的角色融合在一起。人们往往以"脚本"而不是"程序"描述Python的代码文件。"脚本"往往倾向于描述简单的顶层代码文件,而"程序"则用来描述相对复杂一些的多文件应用
由于"脚本语言"从不同的视角来观察时有众多不同的意义,对于Python来讲并不是所有的都适合。实际上,人们往往给Python冠以下面三个不同的角色,其中有些角色相对其余角色更重要
- Shell工具:大家听到Python是脚本语言时,往往会想到Python是一个面向系统的脚本语言代码工具。这些程序往往从命令行运行,实现如文本文件的处理及调用其他程序等任务。Python程序能够以这样的角色工作,这只是其功能
中的一小部分 - 控制语言:对其他人而言,脚本可定义为控制或重定向其他应用程序组件的"粘结"层。Python的简洁使其从本质上能够成为一个灵活的控制工具。
- 使用快捷:对于"脚本语言"最好的解释,也许就是应用于快速编程任务的一种简单语言。对于Python来说实至名归
说了半天,那Python是不是"脚本语言"呢?这取决于问谁。一般意义上讲,"脚本语言"一词可能最适用于描述一种Python所支持的快速和灵活的开发模式,而不是特定的应用领域概念
Python的缺点是什么
Python唯一的缺点是在目前现有实现方式下,执行速度不够快。Python的标准实现方式是将源代码的语句编译(或者说是转换)为字节码的形式,之后再将字节码解释出来。由于字节码是一种与平台无关的格式,字节码具有可移植性。然而,因为Python没有将代码编译成底层的二进制代码,一些Python程序将会比像C这样的完全编译语言慢一些。
如今谁在用Python
YouTube、Google等好多公司都在使用Python,详细情况查阅可相关内容了解
使用Python可以做些什么
Python不仅仅是一个设计优秀的程序语言,它能够完成现实中的各种任务。实际上,作为一种通用语言,Python的应用角色几乎是无限的:可以在任何场合应用Python,从网站和游戏开发到大数据、人工智能
下面是一些Python常见的应用领域,以及每个领域内所用的一些工具的一些简单介绍
1、系统编程
Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件(有时也成为Shell工具)的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,用进程或线程进行并行处理等
2、用户图形接口
Python的简洁以及快速的开发周期十分适合开发GUI程序。Python内置了TKinter的标准面向对象接口TK GUI API,使Python程序可以生成可移植的本地观感的GUI。基于C++平台的工具包wxPython GUI API可以使用Python构建可移植的GUI。
3、Internet脚本
Python提供了标准的Internet模块,它使得Python程序能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端都是这样。脚本可以通过套接字进行通信;从发给服务器端的CGI脚本的表单中提取信息;通过FTP传输文件;解析、生成和分析XML文件;发送、接收、编写和解析Email;通过URL获取网页;从获取的网页中解析HTML和XML文件;通过XML-RPC、SOAP和Telnet通信等。Python的库使这一切变得相当简单
不仅如此,从网络上海可以获得很多实用Python进行Internet编程的第三方工具。如HTMLGen可以从Python类的描述中生成HTML文件,mod_python包可以使在Apache服务器上运行的Python程序更具效率并支持Python Server Page这样的服务器端模板,Jython系统提供了无缝的Python/Java集成而且支持在客户端运行的服务器端Applet。等等还有很多web开发工具包等,如Django
4、组件集成
在前面说Python作为控制语言时,涉及它的组件集成的角色。Python可以通过C/C++系统进行扩展,并能够嵌套C/C++系统的特性,使其能够作为一种灵活的粘合语言,可以脚本化处理其他系统和组件的行为。如,将一个C库集成到Python中,能够利用Python进行测试并调用库中的其他组件等
为了在脚本中使用,在Python连接编译好组件时,SWIG和SIP这样的代码生成工具可以让这部分工作自动完成,并且CPython系统允许代码混合到Python和类似C的代码中。更大一些的框架,如Python的微软Windows所支持的COM,基于Java实现的Jython,基于.NET实现的IronPython和各种CORBA工具包,提供了多种不同的脚本组件。如,在Windows中,Python脚本可利用框架对微软的Word和Excel文件进行脚本处理
5、数据库编程
对于传统的数据库需求,Python提供了对所有主流关系数据库系统的接口,如:Sybase、Oracle、Informix、ODBC、MySQL、PostgreSQL、SQLite等。Python定义了一种通过Python脚本存取SQL数据库系统的可移植的数据库API,这个API对于各种底层应用的数据库系统都是统一的。
6、快速原型
对于Python程序来说,使用Python或C编写的组件看起来都是一样的。正因为如此,我们可以在一开始利用Python做系统原型,之后再将组件移植到C或C++这样的编译语言上。和其他的原型工具不同,当原型确认后,Python不需要重写。系统中不需要像C++这样执行效率的部分可以保持不变,从而使得维护和使用变得轻松
7、数值计算和科学计算编程
NumPy数值编程扩展包括很多高级工具,如,矩阵对象、标准数据库的接口等。通过Python与出于速度考虑而使用编译语言编写的数值计算的常规代码进行集成,NumPy将Python变成一个缜密严谨并简单易用的数值计算工具。
8、游戏、图像、人工智能、XML、机器人等
Python的应用领域很多:
- 可以利用pygame系统使用Python对图形和游戏进行编程
- 使用PySerial扩展在Windows、Linux以及更多系统上进行串口通信
- 用PIL、PyOpenGL、Blender、Maya和其他一些工具进行图像处理
- 用PyRo工具包进行机器人控制编程
- 用XML库、xmlrpclib模块和其他一些第三方扩展进行XML解析
- 使用神经网络仿真器和专业的系统shell进行AI编程
- 使用NLTK包进行自然语言分析
Python如何获得支持
PSF(Python Software Foundation,Python软件基金会)、开发社区
Python有哪些技术上的优点
面向对象、免费、可移植、功能强大、可混合、简单易用、简单易学

浙公网安备 33010602011771号