Python 学习(第一部分) Q&A对话

来源:互联网 发布:java oracle数据库连接 编辑:程序博客网 时间:2024/05/16 18:33

        在进入真正的Python语言中,我们先要了解它,才能真正运用它,掌握它。在这里我们使用问题问答的方式来让大家体会Python。如果你不想了解它,也不需要去看它。在这里我只是给大家一个简单的知识背景,如果你想了解更多,可以上它的官网了解。

        1. 为什么人们使用Python?

         如今有很多编程语言,这个问题也许是最经常被问及的问题。现在有很多Python开发程序源,他们之所以选择它也有不同的原因,可能是第一次学编程就是它或者个人的喜好。但是主要原因有以下几点:

         (1)软件质量

                   在脚本世界中,Python把可读性,健壮性和软件质量放在第一位。比起其它的编程语言,Python代码以可读性,重用和连续性设计的。它支持高级的软件重用机制(software reuse mechanisms), 比如面向对象和函数编程。

         (2)开发者编写量

                   Python比其它的编译或静态类型语言像C,C++ 和 Java语言高效。它只用1/5或者1/4的C++或Java代码完成相同的功能,这就意味着少量的编写,少量的调试,少量的维护。它另一个有点就是没有冗长的编译和连接步驟。

         (3)程序移植性

                  在windows 和linux 平台直接不需要做任何修改,可以相互移植,可以说包括主要的计算机平台。它并却有用户接口,数据库进入程序,基于网站的系统。对于系统接口,如,调用和目录处理,都是可以的。

         (4)支持的库

                  Python是一个预构建和函数体的集合,我们称为标准库。它支持高级别的应用编程任务,从文本匹配到网络脚本。另外,它可以使用自建的库和大量的第三方库来进行无限扩展。它的第三方包括的工具有网站构架,数值计算,序列化端口,游戏开发。比如NumPy的扩展,可以与Matlab相媲美。

         (5)组件整合

                  Python脚本可以简单的和应用对接,使用不同的整合机制。比如使用customization and extension工具等。如今,Python的代码可以调用C和C++库,也可以调用C和C++ 程序,也可以整合Java和.NET组件,可以通过COM和Silverlight和设备的序列话接口通信,通过网络接口如 SOAP,XML-RPC和CORBA互连。它不是单机应用。

         (6)令人沉浸

                  由于Python的简单使用和内置的工具集合,使写程序变成一个愉快的事情。尽管可能是无形的利润,但是你的产出是一个更大的财富。

          2. Python是一个“脚本语言”?

              Python大部分都用于脚本语言,如Perl,Shell等,但是它被定义为面向对象脚本语言(object-oriented scripting language),这个定义把它彻底定义到一个完全面向对象的,在脚本中使用的语言,其实不然。人们容易使用“脚本”来描述Python代码文件。那么保持传统,在小程序中,我们叫脚本,在相对大一些的程序,我们称之为编程语言。另一个原因是“脚本语言(scripting language)” 对不同的观察者有不同的理解,一些人认为它跟Python一点关系都没有。事实是,人们倾向于有三个不同的关系。你可能会听说下面的说法:

              (1)Shell 工具

                        人们认为它是面向系统脚本的工具。如程序从控制台运行或是一个小小的文件任务等。其实,它不只是一个Shell脚本语言。

              (2)控制语言(Controol Language)

                        对于另外一些人来说,它用来控制和导向另外程序的组建。 Python确实经常部署到大型程序的内部。比如,测试硬件设备,用于调用底层设备的组建调用。相似的,许多程序使用它的目的是支持终端用户产品的人性化,不需要重新编译,重新写代码等工作。它有很好的跨平台的特点。所以他也不是控制语言。

              (3) 使用简单

                        正如说“脚本语言”,它值得是快速的编码。这也是为什么我们称之为Python的原因。但是,千万不要这么想,它只是用一些复杂的技巧让我们编程舒服,并简化我们操作。同时Python有一个简单的特性结合,允许程序壮大很大的难度。

               那么现在你还认为Python还是一个脚本语言吗?大体上, “脚本”一词用于描述Python的快速和随意性的一个特点,而不是应用整个范围。

           3. 那么缺点是什么呢?

               每一门语言都有相应的缺点,唯一一个我赞同的是执行速度(execution speed)。它没有完全编译和底层语言如C和C++一样的速度。如今也有少量的程序需要直接与底层硬件进行沟通。 我们可以在以后讨论它的实现概念,简单的说就是如同JAVA,它需要编译成字节码,然后解释它进行运行。所以它才支持跨平台,跟C相比,确实有些程序跑的比较慢。PyPy 系统可以加快一些运行速度,但是它是分离,取缔的方式实现。

               无论你是否关注过程序的运行速度,Python现在可以进行无数次的优化。可以与C的速度相提并论,另外一点,可能我们会把编译好的C代码插入到Phthon的解释器中,来达到相应的速度。在这里我不想讨论太多的Python的缺点,毕竟我们要学习这门语言,在学习中,我们需要发现这些缺点,并增加理解。

           4. 今天谁在使用Python?

               我个人对Linux系统比较感兴趣,并且Python是自动包含在Linux发布的,这就增大了用户的使用量,它也用于Macintosh电脑,很多产品和云中。相比个人使用来说,许多公司使用它来做产品。比如, Google(Web查询系统), Youtube 视频分享服务,Dropbox 存储服务代码, Raspberry Pi单板计算机(教育领域),Google 应用引擎(网络开发框架), EVE Online (在线游戏),BitTorrent, Industrial Light& Magic, Pixar等等。

           5. 使用Python我们可以做什么?

              (1) 系统编程: Python到系统服务器的内置接口是写移植性,维护系统管理工具(有时我们叫做shell 工具)的完美结合。由于它的标准库是POSIX标准的,并支持所有的通用的OS工具:环境变量,文件 ,sockets, 管道(pipes),进程,多线程,正则表达式,命令行参数,标准流接口,Shell命令,文件扩展名,ZIP文件,XML和JSON解析,CSV文件句柄;

              (2) GUIs: 它的简单行匹配到桌面图形用户接口。Python采用面向对象接口到Tk GUI API,我们称之位tikinter, 实现跨平台的GUIs。 另外 基于C++库的wxPython GUI API 提供令一个工具包来构建可一直的GUI。 更高级还有Dabo。并且使用合适的库,你也可以在Python中使用GUI,如Qt是PyQt, GTK是PyGTK, MFC是PyWin32, .NET 是IronPython, Swing是Jython。

              (3) 网络脚本: 在客户和服务器端,Python的标准网络模块都可以运行网络任务。 脚本通过sockets进行通信,抽取标准信息听哦服务器端CGI脚本;通过FTP传送文件;解析和产生XML和JSON文档,发送,接收,写作和解析邮件;使用URLs获取网页;解析HTML;通过XML-RPC,SOAP和Telnet通信;

                         另外,大量的第三方库工具也可以做网络变成,比如THML Gen系统可以基于类的描述产生HTML文件,mod_python包可以有效运行在Apache网络服务器上,支持服务器端的Python服务页面, Jython(Python/Java)支持服务端的applets编码。 另外,还有许多网络开发架构包,如Django, TurboGears, web2py,Pylons,Zope和WebWare,支持快速的开发并保证产品质量。他们许多包括面向对象对应匹配(mappers), MVC(Model/View/Controller架构),服务器端脚本,模板,AJAX支持,提供一个完整的企业级网站开发解决方案。

               (4) 组件整合: 当我们讨论Python作为控制语言中提到组件整合的角色。它可以嵌入到C和C++系统,作为一块功能函数可以随时拿来使用,比如,把C库整合到Python中可以让可测试和启动此库的组建,在产品中嵌入Python,就不需要重新编译。

                          有许多工具,如SWIG和SIP代码产生器可以完成这些工作,Cython系统存在Python和像C一样的代码。比较大一些的框架,如Python的COM支持,Jython 基于Java的实现,等都可以脚本话组建。在Windows上,它的脚本使用这些狂剑来脚本化Word和Excel。

               (5) 数据库编程: 对于传统的数据库命令,Python都有相应的接口,如Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite等,通过一个标准的跨平台的数据库API脚本就可以进行移植,在non-SQL中,Python标准的pickle模型提供简单的对象持久化系统,意思是允许程序只要存储和恢复整个Python对象到文件中,在网上,有你会发现第三方软件,如ZODB和Durus提供完整面向对象数据库系统,另外还有SQLObject和SQLAlchemy,实现了ORMs,它是需要把Python的类模型防盗关系表中。PyMonge,是MongoDB的接口,高性能,non-SQL, 开源JSON形文档数据库,存储的就如果Python的列表形式,剩下解析的任务都交由json模块来解析。另外的系统也提供具体的方式存储数据,包括Google的 App 引擎的存储,把Python和数据模型化,提供扩展性。还有出现的云存储有Azure, PiClound, Openstack和Stackato。

               (6)统计和科学程序: Python也大量用于统计编程,没有对此领域有过多了解;

               (7) 游戏,图像,数据挖掘,机器人,Excel等

            6. Python的技术优点?

                我在这里列出几点,希望大家从以后的学习中有所体会:(1)面向对象,功能化。(2)免费的。(3)可移植。(4)强大(功能)。它包括动态类型(Dynamic typing), 自动内存管理(Automatic memory management), 大面积编程支持, 内置对象类型(Built-in object types),内置工具(Built-in tools), 库工具(Library utilities), 第三方工具(Third-party utilities)。 (5) 开放性(多种语言混合使用).(6) 易用。(7)易学。

0 0
原创粉丝点击