Python学习手册: 问答环节

Posted wbyixx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习手册: 问答环节相关的知识,希望对你有一定的参考价值。

人们为何使用Python

大部分使用Python的人提到了一下原因:

  • 软件质量:Python注重可读性、一致性和软件质量。具备比传统脚本语言更优秀的可重用性和可维护性。Python的一致性也保证其易于理解。
  • 开发者生产效率:相对于C、C++和Java等编译/静态类型语言,Python的开发者效率提高了数倍。Python代码的长度往往只有C++或Java代码的1/5~1/3。这就意味着可以录入更少的代码,调试更少的代码,并在开发完成后维护更少的代码。并且Python程序可以立即运行,而无需传统编译/静态语言所必须的编译及链接等步骤。进一步提高了程序员的效率。
  • 程序的可移植性:在Linux和Windows之间移植Python代码,只需要简单地在机器间复制代码即可。Python还提供了多种可选的代码库,用于编写包括用户图形界面、数据库接入、基于Web的系统等在内的各种程序。其中甚至包括程序启动和文件夹处理这样的操作系统级接口,也称为Python可移植性的一部分。
  • 标准库的支持:Python内置了众多预构建并可移植的功能模块,这些功能模块叫做标准库。标准库支持一系列应用级的编程任务,涵盖了从字符模式到网络脚本编程的匹配等方面。此外,Python可通过自行开发的库或众多第三方的应用来支持软件的扩展。Python的第三方支持工具包括网站搭建、数值计算、串口读写、游戏开发等各个方面。。
  • 组件集成:Python脚本可通过多种集成机制轻松地与应用程序的其他部分进行通信。这种集成使Python称为实现产品定制和扩展的工具。目前,Python代码可以调用C和C++的库,可以被C和C++的程序调用,可以与Java和.NET组件集成,可以与COM和Silverlight等框架进行通信,可以通过串行端口与设备进行连接,并且可以通过SOAP、XML-RPC和CORBA等接口与网络进行交互。Python绝不仅仅是一个鼓励的工具。
  • 享受乐趣:Python的易用性和强大内置工具使编程成为一种乐趣。
  • 。。。

软件质量

从设计之初,Python就秉承了一种独特的简洁而极具可读性的语法,以及一种高度一致的编程模型。Python的语言特性以一种一致和受限的方式进行交互,并自然地遵守一套紧凑的核心理念。这使得Python易于学习、理解和记忆。事实上,Python程序员在阅读和编写代码时无需经常查阅手册。Python是一个设计风格始终如一的开发平台,可以保证开发出具有一致性的代码。

从哲学理念上讲,Python采取了一种所谓极简主义的设计理念。这意味着尽管实现某一编程任务通常有多重方法,往往只有一种方法是显而易见的,还有一些不是那么明显的方法,而且贯穿整门语言都采用这一套紧凑的交互形式。此外,Python并不会为你做任何选择;当交互模棱两可时,是用简洁明了的解决办法要优于“魔法”般的方式。在Python的思维方式中,明了胜于晦涩,简单胜于复杂。

Python还包含模块化、OOP在内的一些工具来自然地提升程序的可重用性。

开发者效率

Python作为开发工具均已付出更少的精力完成更多的任务而脱颖而出。
Python致力于开发速度的最优化;其简洁的语法、动态类型、无需编译、内置工具包等特性使程序员能够快速完成项目开发,而使用其他开发语言则需要几倍的时间。

Python是一门脚本语言吗

Python是一门通用型的编程语言,而它时常扮演着脚本语言的角色。
一般来说,Python可定义为一门面向对象的脚本语言:这个定义把对面向对象的支持和彻底的面向脚本语言的角色融合在一起。如果只用一句话来概括,可以说Python是一门融合了面向过程、函数式和面向对象编程范式的多目标语言。这句话抓住了今天Python设计的领域及其丰富的内涵。

无论怎样,术语“脚本”一词已经同胶水一样黏在了Python上,这不同于其他需要编写大量复杂代码的语言。例如,人们往往用“脚本”(script)而不是“程序”(program)一词来描述Python的代码文件。
“脚本”往往倾向于描述简单的顶层代码文件
“程序”则用来描述那些相对复杂一些的多文件应用

由于“脚本语言”的意思可谓众说纷纭,因而,一些人也认为该词在Python中的使用应该被完全禁止。
实际上,人们往往给Python冠以一下三个不同的角色,其中有些角色相对于其余的角色更重要:

  • Shell工具
  • 控制语言
  • 使用便捷

Python是不是脚本语言取决于看待问题的视角。
一般意义上讲,“脚本语言”一词可能最适用于描述一种Python所支持的快速和灵活的开发模式,而不是特定的应用领域的概念。

Python的缺点是什么

执行速度不够快。

目前Python的标准实现方式是将源代码的语句编译(翻译)为字节码(byte code)的形式,之后再将字节码解释出来。
由于字节码是一种与平台无关的格式,因为它具有可移植性。

然而,Python通常不会将代码编译成底层的二进制代码,一些Python程序将会比C这样的语言慢一些。

程序的类型决定了是否需要关注程序的执行速度。
Python已经优化过很多次,并且Python的代码在绝大多数领域运行的速度也足够快。
一旦使用Python脚本做一些“现实”世界的事情,程序实际上是以C语言的速度运行的。因为在这样的任务重,Python代码会立刻调用Python解释器内部已经编译的C代码。
究其根源,Python开发速度带来的效益往往比执行速度带来的损失更为重要,特别是在现代计算机的处理速度得到极大提升的情况下。

如今谁在使用Python

很多,百度去吧

使用Python可以做什么

Python不仅仅是一个设计优秀的程序语言,它能够完成现实中的各种任务,包括开发者日复一日所做的事情。作为编写其他组件、实现独立程序的工具,它通常应用于各种领域。
实际上,作为一种通用语言,Python的应用角色几乎是无限的:你可以在任何场合应用Python。

尽管如此,Python的常见应用范围可以简单分为一下几类:

系统编程

Python对操作系统服务的内置接口,使其能够成为编写可移植的维护操作系统的管理工具和部件(优势也称为Shell工具)的理想工具。
Python程序可以搜索文件和目录树,可以运行其文件,可以运行其他程序,用进程或线程进行并行处理等。

Python的标准库绑定了POSIX以及其他常规操作系统工具:环境变量、文件、套接字、管道、进程、多线程、正则表达式模式匹配、命令行参数、标准流接口、Shell命令启动器、文件名扩展、zip文件工具、XML和JSON解析器、CSV文件处理器等。

图形用户界面(GUI)

Python的简洁以及快速开发周期十分适合开发桌面GUI程序。Python内置了tkinter(在2.X版本中为Tkinter)的标准面向对象接口Tk GUI API,使Python程序可以生成可移植的本地化设计感的GUI。
Python/Tkinter GUI不做任何改变就可以运行在微软Windows、X WIndows(Linux、Unix)以及Max OS等平台上。
一个免费的扩展包PMW,为Tkinter工具包增加了一些高级部件。
此外,基于C++平台的工具包wxPython GUI API可以使用Python构建可移植的GUI。

诸如Dabo等一些高级工具包是构建在wxPython和tkinter的基础API之上的。
通过适当的库,你可以在Python中使用其他的GUI工具包。

Internate脚本

Python提供了标准的Internate模块,它使得Python程序能够广泛地在多种网络任务中发挥作用,无论是在服务器端还是在客户端。脚本可以通过套接字进行通信;从发送到服务器端的CGI脚本表单中提取信息;通过FTP传输文件;解析、生成XML和JSON文档;发送、接收、生成和解析Email;通过URL获取网页;从获取的网页中解析html文件;通过XML-RPC、SOAP和Telnet等协议进行通信等。Python的库使这一切变得相当简单。

不仅如此,从网络上还可以获得很多Python进行Internate编程的第三方工具。

此外还出现了很多的Python Web开发的工具包,使得Python可以快速构建功能完善和高质量的网站。

互联网发展到哪里,Python就会很快驻扎到哪里。

组件集成

Python通过C/C++系统进行扩展以及嵌入C/C++系统的特性,使其能够作为一种灵活的粘合语言,可以脚本化处理其他系统和组件的行为。

SWING和SIP这样的代码生成工具可以使已编译组件链接接入Python便于脚本使用的这部分工作自动化,并且CPython系统允许程序员将代码混合到Python和类似C的代码中。

此外还有更大一些的框架。

数据库编程

Python提供了对所有主流关系数据库系统的接口。
Python定义了一种通过Python脚本存取SQL数据库系统的可移植的数据库API,这个API对于各种底层应用的数据库系统都是统一的。

在非SQL部分,Python的标准pickle模块提供了一个简单的对象持久化系统:他能够让程序轻松地将整个Python对象保存到文件和类文件载体中,以及从这些载体中恢复。

其他还有一些更加专业化的数据存储方式。。。。。。

快速原型

对于Python程序来说,使用Python或C编写的组件看起来都是一样的。
正因为如此,我们可以在一开始利用Python做系统原型,之后再将组件移植到C或C++这样的编译语言上。
与其他工具不同,当确定原型之后,Python不需要重写。系统中不要求执行效率的部分可以保持不变,从而使维护和使用变得轻松起来。

数值计算和科学计算编程

Python也被大量地应用于数值编程,这是一个不被传统脚本语言含纳和考虑的领域,但是却主键成长为Python最具竞争力的使用案例。

NumPy数值扩展包就包括好多高级工具。
通过将Python与处于速度考虑而使用编译语言编写的数值计算常规代码继承,NumPy将Python编程一个缜密严谨并简单易用的数值计算工具,这个工具通常可以替代已有的代码,而这些代码都是用FORTRAN或C++等编译语言编写的。
。。。
 

更多内容:游戏、图像、数据挖掘、机器人、office等

。。。

Python如何开发并获得支持

作为一个流行的开源系统,Python拥有一个很大且活跃的开发社区,它以令众多商业软件开发者认为不凡的速度进行版本更新和开发改进。
Python开发者使用一个源代码控制系统在线协同地工作。对语言的修改要遵从一个包括写入PEP或其他文档的正式协议开始,知道通过Python的回归测试位置的协议。

开源的权衡

尽管Python拥有活跃的开发社区,但这也伴随着天生的弊端。
开源软件有时也可以变得糟糕甚至是混乱不堪,并不总是像前文暗示的那样顺利地得到实现。
一些修改也许仍然会与官方协议产生分歧,不过尽管有着过程控制,正如同人类在其他领域的努力一样:错误在所难免。

Python有哪些技术上的优点

面向对象和函数式

从根本上将,Python是一种面向对象的语言。
除了作为一种强大的代码组织和重用手段意外,Python的OOP本质使它成为其他面向对象系统语言的理想脚本工具。
OOP只是Python的一个选择而已,可以用也可以不用。Python既支持面向对象编程,也支持面向过程编程模式。

Python在最近几年内置了对函数式编程的支持。。。这是对其本身OOP工具的补充和替代。

免费

Python的使用和分发是完全免费的。
Python的开发石油社区驱动的,是Internate大范围的协同合作努力的结果。

Python语言的改变必须遵循一套规范而有约束力的程序(简称PEP流程),并需要经过规范的测试系统和BDFL进行彻底检查。这是这样才使得Python相对于其他语言和系统可以保守地持续改进。

可移植

Python的标准实现是由可移植的ANSI C编写的,可以在目前所有主流平台上编译和运行。
除了语言解释器本身外,Python发行时自带的标准库和模块在实现上也都尽可能地考虑到了跨平台的移植性。
此外,Python程序自动编译成可移植的字节码,这些字节码在已安装兼容版本Python的平台上运行的结果都是相同的。

功能强大

Python是一个混合体。它丰富的工具集使它介于传统的脚本语言和系统语言之间。
Python提供了所有脚本语言的简单和易用性,并且具有哪些在变易语言中才能找到的高级软件工程工具。

一些Python工具箱中的工具:

  • 动态类型:Python在程序运行过程中跟踪对象的类型,不需要代码中进行关于复杂的类型和大小的声明。Python中没有类型或者变量声明这种做法。因为Python代码不约束数据的类型,它往往自动地应用了一个广义上的对象
  • 自动内存管理:Python自动为对象分配空间,并且当对象不再使用时将自动撤销空间(“垃圾回收”),当需要时自动扩展或收缩。
  • 大型程序支持:为了建立更大规模的系统,Python包含了模块、类和异常等工具。
  • 内置对象类型:提供了常用的数据结构作为语言的基本组成部分。
  • 内置工具:自带了许多功能强大的标准操作。
  • 库工具:预置了很多库工具。
  • 第三方工具:有着众多的第三方工具。
  • 。。。

可混合

Python程序可以以多种方式轻易地与其他语言编写的组件“粘接”在一起。
这意味着可以根据需要给Python程序添加功能,或者在其他系统环境中使用Python。

相对简单易用

要运行Python程序,只要简单的输入并运行就可以了。不需要编译和链接等步骤。Python可以立即执行程序。
Python开发周期短,语法简单。曾被称为“可执行的伪代码”

相对简单易学

Python语言的核心简单易学。
需要重要掌握的是Python的各种工具的用法。

以Monty Python命名

Python的创作者城市Monty Python的粉丝,BBC在20世纪70年代喜剧的制作方。

Python和其他语言比较起来怎么样

  • 比Tcl强大。
  • 比Perl更具有可读性。
  • 比Java和C#更简单、更易于维护。
  • 比C++更简单、更易于使用。
  • 与C更加简单和高级。
  • 比Visual Basic更强大、用途广泛,且具有跨平台特性。
  • php更易懂且用途广。
  • javascript更强大且用途广泛。
  • 比Ruby更具有可读性。
  • 比Lua更成熟和收到更广泛的关注。
  • 我SmallTalk、Lisp和Prolog更不晦涩。
  • 。。。








 

以上是关于Python学习手册: 问答环节的主要内容,如果未能解决你的问题,请参考以下文章

Python学习日志-01

Python学习日志-01

[Python]-机器学习Python入门《Python机器学习手册》-01-向量矩阵和数组

Python学习手册 :Python 学习笔记第一天

Python学习手册《Learning Python》

Python学习手册之类和继承