青岛科技大学脚本编程技术期末考试原题

发布时间:2020-05-07 07:57:35   来源:文档文库   
字号:

一、判断题(每题2分,共10分)

二、名词解释(考5题,每题4分)

1PyPIPyPI(Python Package Index)python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPIPyPI推荐使用pip包管理器来下载第三方库。

2easy_installeasy_install是由PEAK(Python Enterprise Application Kit)开发的setuptools包里带的一个命令,它用来安装egg包。所以使用easy_install实际上是在调用setuptools来完成安装模块的工作。

setuptoolsPython distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。

(3)egg:pythonegg文件有点像java中的jar文件,把一系列的python源码文件、元数据文件、其他资源文件 zip 压缩,重新命名为.egg 文件,目的是作为一个整体进行发布,便于安装部署。在理想情况中,egg?是一个使用?zip?压缩的文件,其中包括了所有需要的包文件。但是在某些情况下,setuptools?会决定(或被开关告知)包不应该是?zip?压缩的。在这些情况下,egg?只是一个简单的未曾压缩的子目录,但是里面的内容是相同的。使用单一的版本可以方便地进行转换,并可以节省一点磁盘空间,但是?egg?目录从功能和组织结构上来说都是相同的。

(4)Pippip 是一个安装和管理 Python 包的工具 , easy_install 的一个替换品。pip 一般用来解决项目依赖问题。将项目所有依赖的第三方库写在一个requirements.txt 中用pip 批量安装。一般和virtualenv 配合使用,将所有包安装在virtualenv 的环境中。

(5)动态语言RubyPython都有自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。Python通过virtualenv工具管理虚拟环境Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个libraryinterpreter。虚拟环境的好处是避免了不同Python程序间的互相影响。

(6)FabricFabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。FabricParamiko的基础上做了更高一层的封装,操作起来会更加简单。

(7)supervisordSupervisord是用Python实现的一款非常实用的进程管理工具,类似于monit,都可以对进程进行监控。monitsupervisord的一个比较大的差异是supervisord管理的进程必须由supervisord来启动,monit可以管理已经在运行的程序;supervisord还要求管理的程序是非daemon程序,supervisord会帮你把它转成daemon程序,因此如果用supervisord来管理nginx的话,必须在nginx的配置文件里添加一行设置daemon offnginx以非daemon方式启动。

(8)PyramidPyramid是一个通用、开源的 Python 网络应用程序开发框架。它主要的目的是让 Python 开发者更简单的创建网络应用程序。

GunicornGunicorn(gunicorn.org)是一个Python WSGI UNIX HTTP服务器,是基于pre-fork worker模型,是从rails的部署工具(Unicorn)移植过来的。但是它使用的协议是?WSGI,全称是Python Web Server Gateway Interface,部署比较简单。

DjangoDjango是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器CDjango 框架的核心组件有:1.用于创建模型的对象关系映射2.为最终用户设计的完美管理界面3.一流的 URL 设计4.设计者友好的模板语言5.缓存系统。

(9)CeleryCelery(芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

(10)Traversal(遍历):指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。

3、分析题(每题10分,共30分)

4、论述题(考两个,每题20分)

1、请论述web应用开发是PythonPHP的异同。

相同点:都是动态类型的解释型高级脚本语言。

不同点:

(1)语法:PHP 的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串), 但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员), 再比如比较蛋疼的命名空间的语法。Python 相比之下要好一点,但是 Python2 Python3 直接存在着一些不兼容的语法变动。

(2)2)编写 HTML 模版:PHP 可以非常方便地直接用来编写 HTML 模版,Python 需要借助其他的语言或库来实现。

(3)3)包管理器:PHP 的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python 有统一的包管理器,虽然也有问题,但要比 PHP 好得多,引入库之后的命名空间管理也要比 PHP 好。

(4)4)扩展和库:PHP Python 都可以用 C 来编写扩展。相比之下 Python 可用的库要更多一点。

(5)5)运行方式:PHP 运行方式比较单一(php-fpm, mod_php), Python 则可以以 fastCGI 运行,也可以自行监听端口来处理请求。

(6)6)性能:因为 PHP 运行方式单一,opcode 缓存方案也比较成熟(APC, opcache),缓存 opcode 之后运行速度很快。Python 则可能需要更多地自行优化性能。

(7)7)类型系统:PHP Python 都是动态类型。PHP 对类型判别比较模糊,有很多陷阱,Python 则严格一些。

(8)8)学习成本:PHP 和学习成本都不是很高。PHP 优势在于有比较完整的官方中文文档,而且 PHP 应用领域只有 Web, 所以需要学习的内容较少。Python 因为学习路线较多,不太容易找到适合自己的教程和资料。

(9)

(10)9)社区:PHP 的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python 则要好一点。

(11)10)应用领域:PHP 仅在 Web 后端方面被使用,Python 应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面), Python 要方便一点。

2、请论述Python语言的特点。

(1)易用性:

易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

易于阅读:Python代码定义的更清晰。

易于维护:Python的成功在于它的源代码是相当容易维护的。

(2)扩展性:

如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用CC++编写,然后在你的Python程序中使用它们。?

(3)可移植性:

基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

4)面向对象:

使用面向对象的方式。Python即支持面向过程的编程,也支持面向对象的编程。在 面向过程 的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在 面向对象 的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

5)丰富的库:

Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI FTP、电子邮件、XMLXML-RPCHTMLWAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

只要安装了 Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。

除了标准库以外,还有许多其他高质量的库,如wxPythonTwisted Pygame Python图像库 等等。

(6)可嵌入:

你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

(7)互动模式:

互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

(8)数据库:

Python提供所有主要的商业数据库的接口。

9GUI编程:

Python支持GUI可以创建和移植到许多系统调用。

10)解释性:

一个用编译性语言比如CC++写的程序可以从源文件(即CC++语言)转换到一个你的计算机使用的语言(二进制代码,即01)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候, 连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心 如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它 就可以工作了,这也使得你的Python程序更加易于移植。?

3、请论述Python语言与C语言的异同。

相同点:

不同点:

C语言属于编译性语言。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。由于执行速度快,同等条件下对系统要求较低,常用于开发操作系统、大型应用程序、数据库系统等。

Python是一种脚本语言。脚本语言是解释性语言。脚本语言一般都有相应的脚本引擎来解释执行。它们一般需要解释器才能运行。所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本语言是一种解释性的语言,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。通常应用于一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序。

C 是静态类型语言。一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的

Python是动态类型语言。一种在运行期间才去确定数据类型的语言,与静态类型相反。它确定一个变量的类型是在第一次给它赋值的时候。

C语言使用面向过程的方式。面向过程是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

Python即支持面向过程的编程,也支持面向对象的编程。在 面向过程 的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在 面向对象 的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++Java相比,Python以一种非常强大又简单的方式实现面向对象编程。

4、请论述Python的发展史。

Python 是由吉多·范罗苏姆 Guido van Rossum)在1989年为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABCModula-3CC++Algol-68SmallTalkUnix shell 和其他的脚本语言等等。

Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

Python 2.020001016日发布,主要是实现了完整的垃圾回收,并且支持Unicode。同时,整个开发过程更加透明,社区对开发进程的影响逐渐扩大。

2001年,?Python的核心开发团队移师Digital?Creations公司,该公司是Zope(一个用Python编写的web应用服务器)的创始者。

2008123发布,经过长时间的测试,Python 3.0发布。它不完全兼容之前的Python代码。不过,很多新特性后来也被移植到旧的Python 2.6/2.7版本。

本文来源:https://www.2haoxitong.net/k/doc/af3252eb0229bd64783e0912a216147916117e78.html

《青岛科技大学脚本编程技术期末考试原题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式