您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 2016青岛科技大学脚本编程技术期末考试原题
一、判断题(每题2分,共10分)二、名词解释(考5题,每题4分)(1)PyPI:PyPI(PythonPackageIndex)是python官方的第三方库的仓库,所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库。(2)easy_install:easy_install是由PEAK(PythonEnterpriseApplicationKit)开发的setuptools包里带的一个命令,它用来安装egg包。所以使用easy_install实际上是在调用setuptools来完成安装模块的工作。setuptools是Pythondistutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。(3)egg:python的egg文件有点像java中的jar文件,把一系列的python源码文件、元数据文件、其他资源文件zip压缩,重新命名为.egg文件,目的是作为一个整体进行发布,便于安装部署。在理想情况中,egg是一个使用zip压缩的文件,其中包括了所有需要的包文件。但是在某些情况下,setuptools会决定(或被开关告知)包不应该是zip压缩的。在这些情况下,egg只是一个简单的未曾压缩的子目录,但是里面的内容是相同的。使用单一的版本可以方便地进行转换,并可以节省一点磁盘空间,但是egg目录从功能和组织结构上来说都是相同的。(4)Pip:pip是一个安装和管理Python包的工具,是easy_install的一个替换品。pip一般用来解决项目依赖问题。将项目所有依赖的第三方库写在一个requirements.txt中用pip批量安装。一般和virtualenv配合使用,将所有包安装在virtualenv的环境中。(5)动态语言Ruby、Python都有自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。Python通过virtualenv工具管理虚拟环境。Python的虚拟环境可以使一个Python程序拥有独立的库library和解释器interpreter,而不用与其他Python程序共享统一个library和interpreter。虚拟环境的好处是避免了不同Python程序间的互相影响。(6)Fabric:Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。(7)supervisord:Supervisord是用Python实现的一款非常实用的进程管理工具,类似于monit,都可以对进程进行监控。monit和supervisord的一个比较大的差异是supervisord管理的进程必须由supervisord来启动,monit可以管理已经在运行的程序;supervisord还要求管理的程序是非daemon程序,supervisord会帮你把它转成daemon程序,因此如果用supervisord来管理nginx的话,必须在nginx的配置文件里添加一行设置daemonoff让nginx以非daemon方式启动。(8)Pyramid:Pyramid是一个通用、开源的Python网络应用程序开发框架。它主要的目的是让Python开发者更简单的创建网络应用程序。Gunicorn:Gunicorn(gunicorn.org)是一个PythonWSGIUNIX的HTTP服务器,是基于”pre-forkworker”模型,是从rails的部署工具(Unicorn)移植过来的。但是它使用的协议是WSGI,全称是PythonWebServerGatewayInterface,部署比较简单。Django:Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。Django框架的核心组件有:1.用于创建模型的对象关系映射2.为最终用户设计的完美管理界面3.一流的URL设计4.设计者友好的模板语言5.缓存系统。(9)Celery:Celery(芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。Celery的架构由三部分组成,消息中间件(messagebroker),任务执行单元(worker)和任务执行结果存储(taskresultstore)组成。(10)Traversal(遍历):指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。三、分析题(每题10分,共30分)四、论述题(考两个,每题20分)1、请论述web应用开发是Python与PHP的异同。相同点:都是动态类型的解释型高级脚本语言。不同点:(1)语法:PHP的语法看起来就像没有经过精心设计一样,很随意。有的语法看似很方便(用点来连接字符串),但是却为之后扩展造成了很多麻烦(点没法用于访问对象的成员),再比如比较蛋疼的命名空间的语法。Python相比之下要好一点,但是Python2和Python3直接存在着一些不兼容的语法变动。(2)编写HTML模版:PHP可以非常方便地直接用来编写HTML模版,Python需要借助其他的语言或库来实现。(3)包管理器:PHP的包管理器(PEAR)和扩展管理器(PECL)恐怕根本没人用,这导致引入一个新依赖的成本很高,于是很多人倾向于自己造轮子而不是引入现成的库。Python有统一的包管理器,虽然也有问题,但要比PHP好得多,引入库之后的命名空间管理也要比PHP好。(4)扩展和库:PHP和Python都可以用C来编写扩展。相比之下Python可用的库要更多一点。(5)运行方式:PHP运行方式比较单一(php-fpm,mod_php),Python则可以以fastCGI运行,也可以自行监听端口来处理请求。(6)性能:因为PHP运行方式单一,opcode缓存方案也比较成熟(APC,opcache),缓存opcode之后运行速度很快。Python则可能需要更多地自行优化性能。(7)类型系统:PHP和Python都是动态类型。PHP对类型判别比较模糊,有很多陷阱,Python则严格一些。(8)学习成本:PHP和学习成本都不是很高。PHP优势在于有比较完整的官方中文文档,而且PHP应用领域只有Web,所以需要学习的内容较少。Python因为学习路线较多,不太容易找到适合自己的教程和资料。(9)社区:PHP的资料遍地,但是高质量的中文社区较少,普遍对官方的新功能不是很关注。Python则要好一点。(10)应用领域:PHP仅在Web后端方面被使用,Python应用领域更广泛一点,如果需要将逻辑移植到其他平台(如桌面),Python要方便一点。2、请论述Python语言的特点。(1)易用性:易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。易于阅读:Python代码定义的更清晰。易于维护:Python的成功在于它的源代码是相当容易维护的。(2)扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。(3)可移植性:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。(4)面向对象:使用面向对象的方式。Python即支持面向过程的编程,也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。(5)丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted、Pygame和Python图像库等等。(6)可嵌入:你可以将Python嵌入到C/C++程序,让你的程序的用户获得脚本化的能力。(7)互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。(8)数据库:Python提供所有主要的商业数据库的接口。(9)GUI编程:Python支持GUI可以创建和移植到许多系统调用。(10)解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。3、请论述Python语言与C语言的异同。相同点:不同点:C语言属于编译性语言。编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。由于执行速度快,同等条件下对系统要求较低,常用于开发操作系统、大型应用程序、数据库系统等。Python是一种脚本语言。脚本语言是解释性语言。脚本语言一般都有相应的脚本引擎来解释执行。它们一般需要解释器才能运行。所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本语言是一种解释性的语言,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。通常应用于一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序。C是静态类型语言。一种在编译期间就确定数据类型的语言。大多数静态类型语言是通过要求在使用任一变量之前声明其数据类型来保证这一点的Python是动态类型语言。一种在运行期间才去确定数据类型的语言,与静态类型相反。它确定一个变量的类型是在第一次给它赋值的时候。C语言使用面向过程的方式。面向过程是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。Python即支持面向过程的编程,也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。4、请论述Python的发展史。Python是由吉多·范罗苏姆(GuidovanRossum)在1989年为了打发圣诞节的无趣,决心开发一个新的脚
本文标题:2016青岛科技大学脚本编程技术期末考试原题
链接地址:https://www.777doc.com/doc-4358302 .html