目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
单元九   网络编程基础

Python程序设计》第9次作业 

 

一、单选题(共3题,24.9分)

1、为避免下标访问键不存在时抛出异常导致程序中止,字典对象提供了一个get()方法用来返回指定键的值,该方法允许指定当键不存在时返回的值。

格式:字典.get(<键>[,d])

功能:若<键>在字典中,返回<键>所对应的值,若键不存在且指定了d则返回d,否则无返回。

 

已知 x = {1:2, 2:3},那么表达式 x.get(2, 4) 的值为______

 

A、 1

B、 2

C、 3

D、 4

正确答案: 

2、为避免下标访问键不存在时抛出异常导致程序中止,字典对象提供了一个get()方法用来返回指定键的值,该方法允许指定当键不存在时返回的值。

格式:字典.get(<键>[,d])

功能:若<键>在字典中,返回<键>所对应的值,若键不存在且指定了d则返回d,否则无返回。

已知 x = {10:20, 20:30},那么表达式 x.get(2, 4) 的值为______。

 

A、 1

B、 2

C、 3

D、 4

正确答案: 

3、Python提供了两个级别访问的网络服务: 低级别的网络服务和高级别的网络服务。

低级别为(             ),高级别为(         )。  

A、 TCP,UDPr

B、 Socket,SocketServer

C、 API,OSI

D、 FTP,POP3

正确答案: 

解析:Python 提供了两个级别访问的网络服务:

·

 

二、多选题(共7题,58.5分)

1、 网络编程中有两个主要的问题,一个是(                     ),另一个就是(          )。

A、 如何准确的定位网络上一台或多台主机

B、 如何准确的编写网络应用程序

C、 找到主机后,如何可靠高效的进行数据传输交换。 

D、 如何输出传输结果。

正确答案: 

解析:

 

2、socket编程技术是常用的网络编程技术。

 所谓socket,通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程 序通常通过"套接字"向网络发出请求或者应答网络请求。

套接字有两种不同的类型:(              )和(          )。

 

A、 流套接字

B、 数据报套接字

C、 文本接字

D、 二进制接字

正确答案: 

解析:接字可以根据通信性质分类,这种性质对于用户是可见的。应用程序一般仅在同一类的 套接字间进行通信。不过只要底层的通信协议允许,不同类型的套接字间也照样可以通信。套 接字有两种不同的类型:流套接字和数据报套接字。

 

 

3、套接字工作原理:

    要通过互联网进行通信,至少需要一对套接字,其中一个运行于客户机端,我们称之为 ClientSocket,另一个运行于服务器端,我们称之为ServerSocket。 

根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个 步骤:(         ),(      ),(     )。

A、 服务器监听

B、 客户端请求

C、 服务器与客户端等待

D、 连接确认

正确答案: 

4、下面叙述正确的是(                 )。

A、所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。 

 B、所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接 字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的 地址和端口号,然后就向服务器端套接字提出连接请求。 

 C、所谓客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的客户端的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。 

 D所谓服务器监听,是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的 状态,实时监控网络状态。 

    

正确答案: 

5、阅读下面程序:

import socket     #导入 套接字Socket模块

try:

    s = socket.socket()          #创建 socket 对象

    host =socket.gethostname()      #   获主机IP,例,本机ip: host = '127.0.0.1'

    port = 2345                   #端口号  如:8080

    s.bind((host, port))        #   (                      )

    s.listen()                        # (                   )。

    print(host," 服务器在监听...")

    while True:                       #开启永真循环

            c= s.accept()[0]         #(                )

            d=c.recv(1024)          #(              )

            d=d.decode()             #数据模式转换  

            d="Hi,我是HX小信,你发送的信息是:"+d

            d=d.encode()              #数据模式转换 

            c.send(d)                     #(          )

      c.close()                            # 关闭套接字

      s.close()                       # 关闭套接字对象

except Exception as e:

    print(e)

   

关于Socket常用方法,下面哪些备注叙述是正确的(            )。 

A、s.bind((host, port))        #绑定地址(host,port)到套接字, 在AF_INET下,以元组(host,port)的形式表示地址。

 B、s.listen()       #  开始TCP监听。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。

 C、c= s.accept()[0]      #被动接受TCP客户端连接,(阻塞式)等待连接的到来

 D、d=c.recv(1024)       #接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。

 c.send(d)                #发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量。

 

正确答案: 

解析:


6、阅读下面代码:

#(2) 客户端程序

import socket        #   (          )

input("按任意键开始连接服务器...")

try:

    s =socket.socket()                 #创建 socket 对象

    host = socket.gethostname()        #   获主机IP,例,本机ip: host = '127.0.0.1'

    port = 2345                        #端口号  如:8080

    s.connect((host, port))        #(             )

 

    d=input("输入要发送的字符串:")

    d=d.encode()                       #数据模式转换 

    s.send(d)                          #(                   )

    d=s.recv(1024)                #  (                )

    d=d.decode()                       #数据模式转换 

    print(d)

    s.close()                          #关闭套接字

 

except Exception as e:

    print(e)

 

下面哪些备注叙述是正确的(        )。

A、 import socket        #  导入套接字Socket模块

B、s.connect((host, port))        #主动初始化TCP服务器连接,一般address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。

 C、s.send(d)        #发送TCP数据,将string中的数据发送到连接的套接字。返回值是要发送的字节数量。

 D、 d=s.recv(1024)         #接收TCP数据,数据以字符串形式返回,bufsize指定要接收的最大数据量。

正确答案: 

解析:

 

7、 下面关于协议的叙述,正确的是(           )。

A、 HTTP协议的端口号是80。

B、 用于文件传输的协议是FTP。 

C、 用于接收邮件的协议是POP3。

D、 用于发送邮件的协议是SMTP。

正确答案:  

三、判断题(共2题,16.6分)

1、网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯。

目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。

客户则在需要服务时向服务器提出申请。服务器一般作为 守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客 户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。

正确答案: 

2、UDP协议是面向无连接的协议。

使用UDP协议时,不需要建立链接,只需要知道对方的

IP地址和端口号,就可以直接发数据包。

 正确答案: