《Python程序设计》习题与答案 下载本文

import socket

s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 0主机的IP地址 s.close( )

10.3 简单介绍socket模块中用于TCP编程的常用方法。

TCP一般用于要求可靠数据传输的场合。编写TCP程序时经常需要用到的socket模块方法主要有:

? connect(address):连接远程计算机 ? send(bytes[,flags]):发送数据 ? recv(bufsize[,flags]):接收数据 ? bind(address):绑定地址

? listen(backlog):开始监听,等待客户端连接 ? accept():响应客户端的请求

10.4 编写代码读取搜狐网页首页内容。 答:

>>> import urllib.request >>> dir(urllib.request)

')

>>> dir(fp)

>>> print(fp.read(100)) >>> fp.close()

10.5 在自己的机器上配置IIS以支持Python脚本的运行,然后使用Python编写脚本,运行后在网页上显示“Hello world!”。

答:核心代码为 print

print 'Status: 200 OK'

print 'Content-type: text/html' print

print 'Python Sample CGI' print ''

print '

This is a header

' print '

Hello world!' print '
' print ''

第11章 大数据处理

11.1 简单介绍常见的大数据处理框架。 答:主要有三种,

? MapReduce:分布式计算框架,可以将单个大型计算作业分配给多台计算机执行,

可以在短时间内完成大量工作,尤其适合数值型和标称型数据,但需要对行业领域具有一定理解后重写算法来完成特定的业务处理要求。MapReduce的名字由函数式编程中常用的map和reduce两个单词组成。MapReduce在大量节点组成的集群上运行,工作流程是:单个作业被分成很多小份,输入数据也被切片并分发到每个节点,每个节点只在本地数据上做运算,对应的运算代码称为mapper,这个过程即map阶段;每个mapper的输出通过某种方式组合,根据需要可能再进行重新排序,排序后的结果再被切分成小份并分发到各个节点进行下一步处理,这个过程被称为reduce阶段,对应的代码称为reducer。不同类型的作业可能需要不同数量的reducer,并且,在任何时候,每个mapper或reducer之间都不进行通信,每个节点只负责处理自己的事务,并且只在分配到本地的数据集上进行运算。

? Hadoop:Hadoop是MapReduce框架的一个免费开源实现,采用Java语言编写,支

持在大量机器上分布式处理数据。除了分布式计算之外,Hadoop还自带分布式文件系统,可以在上面运行多种不同语言编写的分布式程序。Hadoop在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,事实上已成为当前互联网企业主流的大数据分析平台。

? Spark:Spark是一个针对超大数据集合的低延迟集群分布式计算系统,比

MapReduce快40倍左右。Spark是Hadoop的升级版本,兼容Hadoop的API,能够读写Hadoop的HDFS HBASE 顺序文件等,与之不同的是将结果保存在内存中。 Hadoop作为

第一代产品使用了HDFS,第二代加入了Cache来保存中间计算结果,第三代则是Spark倡导的流技术Streaming。

11.2 运行本章中代码并理解MapReduce编程思路。 答:略