homework001

来源:互联网 发布:linux下nslookup 编辑:程序博客网 时间:2024/05/16 18:51
  1. python是编译型语言还是解释性语言,两种类型的语言的程序有什么不同?

    1. python相对与其他语言有什么优点和缺点?

优点

简单

Python是一种代表简单主义思想的语言,阅读一个良好的Python程序就感觉是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本职是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。

易学

就如同你即将看到的一样,Python及其容易上手。前面已经提到过了,Python有及其简单的语法。

免费、开源

Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。

高层语言

当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性

由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!

解释型语言

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

面向对象

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

可扩展性

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

丰富的库

Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码

Python采用强制缩进的方式使得代码具有极佳的可读性。

缺点

Python语言非常完善,没有明显的短板和缺点,唯一的缺点就是执行效率慢,这个是解释型语言所通有的,同时这个缺点也将被计算机越来越强大的性能所弥补。

  1. Python应用场景有哪些

Web应用开发

Python经常被用于Web开发。比如,通过mod_wsgi模块,Apache可以运行用Python编写的Web程序。Python定义了WSGI标准应用接口来协调Http服务器与基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。

操作系统管理、服务器运维的自动脚本化

在很多操作系统里,Python是标准的系统组件。 大多数Linux发行版以及NetBSD、OpenBSD和Mac OS X都集成了Python,可以在终端下直接运行Python。有一些Linux发行版的安装器使用Python语言编写,比如Ubuntu的Ubiquity安装器,Red Hat Linux和Fedora的Anaconda安装器。Gentoo Linux使用Python来编写它的Portage包管理系统。Python标准库包含了多个调用操作系统功能的库。通过pywin32这个第三方软件 包,Python能够访问Windows的COM服务及其它Windows API。使用IronPython,Python程序能够直接调用.Net Framework。一般说来,Python编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本。

网络爬虫

Python有大量的HTTP请求处理库和HTML解析库,并且有成熟高效的爬虫框架Scrapy和分布式解决方案scrapy-redis,在爬虫的应用方面非常广泛。

科学计算

NumPy、SciPy、Pandas、Matplotlib可以让Python程序员编写科学计算程序。

桌面软件

PyQt、PySide、wxPython、PyGTK是Python快速开发桌面应用程序的利器。

服务器软件(网络软件)

Python对于各种网络协议的支持很完善,因此经常被用于编写服务器软件、网络爬虫。第三方库Twisted支持异步网络编程和多数标准的网络协议(包含客户端和服务器),并且提供了多种工具,被广泛用于编写高性能的服务器软件。

游戏

很多游戏使用C++编写图形显示等高性能模块,而使用Python或者Lua编写游戏的逻辑、服务器。相较于Python,Lua的功能更简单、体积更小;而Python则支持更多的特性和数据类型。

构思实现、产品早期原型和迭代

Google、NASA、Facebook都在内部大量地使用Python。

4.你认为注释是用来做什么的?
通过自己熟悉的语言,在程序中对某些代码进行注释说明,这就是注释的作用,能够大大增强程序的可读性。

5.在python中,注释分几类?分别如何定义?
注释分为单行注释和多行注释。

单行注释

以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助作用。

#我是注释,可以在里面写一些功能说明之类print('helloworld')

多行注释

'''我是多行注释,可以写很多很多行的功能说明下面的代码完成,打印一首诗名字叫做:春江花月夜'''print('╔══╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╤═╗')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │  ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('║ │春│滟│江│空│江│江│人│不│白│谁│可│玉│此│鸿│昨│江│斜│不│ ║')print('║ │江│滟│流│里│天│畔│生│知│云│家│怜│户│时│雁│夜│水│月│知│ ║')print('║ │潮│随│宛│流│一│何│代│江│一│今│楼│帘│相│长│闲│流│沉│乘│ ║')print('║ │水│波│转│霜│色│人│代│月│片│夜│上│中│望│飞│潭│春│沉│月│ ║')print('║ │连│千│绕│不│无│初│无│待│去│扁│月│卷│不│光│梦│去│藏│几│ ║')print('║春│海│万│芳│觉│纤│见│穷│何│悠│舟│徘│不│相│不│落│欲│海│人│ ║')print('║江│平│里│甸│飞│尘│月│已│人│悠│子│徊│去│闻│度│花│尽│雾│归│ ║')print('║花│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│,│ ║')print('║月│海│何│月│汀│皎│江│江│但│青│何│应│捣│愿│鱼│可│江│碣│落│ ║')print('║夜│上│处│照│上│皎│月│月│见│枫│处│照│衣│逐│龙│怜│潭│石│月│ ║')print('║ │明│春│花│白│空│何│年│长│浦│相│离│砧│月│潜│春│落│潇│摇│ ║')print('║ │月│江│林│沙│中│年│年│江│上│思│人│上│华│跃│半│月│湘│情│ ║')print('║ │共│无│皆│看│孤│初│望│送│不│明│妆│拂│流│水│不│复│无│满│ ║')print('║ │潮│月│似│不│月│照│相│流│胜│月│镜│还│照│成│还│西│限│江│ ║')print('║ │生│明│霰│见│轮│人│似│水│愁│楼│台│来│君│文│家│斜│路│树│ ║')print('║ │。│。│。│。│。│?│。│。│。│?│。│。│。│。│。│。│。│。│ ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('║ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ║')print('╚═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╧═╝')

6.请说出你对变量的理解,变量的作用是什么?
所谓变量,可以理解为菜篮子,是用来存储数据的。

7.请说出你对变量类型的理解
为了更充分地利用空间以及更有效率的管理内存,变量是有不同类型的。
在Python中,只要定义了一个变量,而且它有数据,那么它的数据类型就已经确定了,不需要开发者主动去说明它的类型,系统会自动识别。
可以使用type(变量的名字),来查看变量的类型。

8.请说出你对标示符的理解
所谓标识符,是开发人员在程序中自定义的一些符号和名称。
标识符是自己定义的,如变量名、函数名等。

9.常见的标示符的命名规则有哪些?
标识符由字母、数字和下划线组成,且数字不能开头。

10.简述什么是关键字,变量的类型有哪些提示?
Python一些具有特殊功能的标识符,就是所谓的关键字。
关键字,就是Python已经使用的了,所以不允许开发者自己定义和关键字相同名字的标识符。
通过以下命令可以查看当前系统中python的关键字:

import keywordkeyword.kwlist

11.请写出你对输出的理解?

一般输出:

print("HelloWorld")print("Life is short,use Python")

格式化输出:

age=10print("我今年%d岁" %age)

常用的格式化符号:
%c 字符
%s 字符串
%d 有符号十进制整数
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(小写字母0x)
%X 十六进制整数(大写字母0X)
%f 浮点数
%e 科学计数法(小写’e’)
%E 科学计数法(大学’E’)
%g %f和%e的简写
%G %f和%E的简写

12.请定义一个变量str1并赋值一个字符串”hello”,再定义一个变量str2并赋值一个字符串”python”,那么str1 + str2 的值是多少?

str1="hello"str2="python"print(str1+str2)

结果是hellopython

13.编写一段代码,定义任意数量(至少三个)的变量,并按照’a = xxx,b=xxx,…’的格式打印出变量的名字和该变量所存储的数据,要求运用格式化输出,并且每一行代码,须写上相应的注释进行说明。

#定义a变量a=1#定义b变量b=2#定义c变量c=3#格式化打印a、b、c的值print("a=%d" %a)print("b=%d" %b)print("c=%d" %c)