1.在 python 中导入模块中的对象有哪几种方式?(1)
(1)
import math #直接导入math库
import numpy as np #导入模块并设置别名
(2)
from math import sin #导入明确指定的对象
from math import sin as f #导入math库中的sin对象并将其命名为f
(3)
2.Python 脚本程序的“ _ _name_ _ ”变量及其作用。(1)
答:每个python脚本在运行时都有一个_ _name_ _属性。利用_ _name_ _属性可以控制python程序中代码的运行方式。
1)当python程序自己独立执行时,_ _name_ _变量的值就是:_ _main_ _
2) 当python程序是作为模块被导入时,那么_ _name_ _变量的值就是:程序的文件名,也就是.py前面的文件名称。
使用import语句导入一个python程序文件时,会执行其中的代码,如果一段代码不想在导入模块时执行,可以在这段代码前面加一个条件判断if _ _name_ _ == '_ _main_ _':
3.为什么说 Python 采用的是基于值的内存管理模式?(1)
答:Python采用的是基于值的内存管理方式,如果在同一个程序中或者交互模式下同一个语句中为不同变量赋值相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。另外,Python程序中的变量不存储值,而是存储值得引用,列表、元组、字典、集合等可迭代对象中包含的也是元素的引用。在调用函数时,也是把实参的引用传递给形参。
python启动时,会对[-5,256]的整数进行缓存,对于区间以外的整数,同一个程序中或交互模式下同一个语句中的同值不同名变量会共用同一空间,不同程序或交互模式下不同语句不遵守这个约定。
4.为什么应尽量从列表的尾部进行元素的增加与删除操作?(2)
答:Python总是会保证列表中的相邻元素的引用之间没有空隙,在增加和删除元素时会自动进行内存空间的收缩和扩张。在列表中间位置插入元素时,该位置后面的所有元素会向后移动,下标会发生改变,并且元素的移动会带来额外的开销;同理,在列表中间位置删除元素时,后面的元素向前移动,下标会发生改变,并且元素的移动会带来额外的开销。
5.分析逻辑运算符 or 的短路求值特性。(3)
答:
假设有表达式“子表达式“1 or子表达式2”,如果子表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不会再计算表达式2的值。
6.Python 异常处理结构有哪几种形式?(3,,实际第8章)
(1)
(2)
(3)
(4)
7.异常和错误有什么区别?(8)
错误是代码运行前,非正常的,不应该出现的,比如:缩进、循环语句的冒号,(差不多就是语法错误)
异常是指程序运行时引发的错误,例如文件不存在,网络异常,类型异常,磁盘空间不足等
异常是代码运行时产生的 ,解释器检测到错误并且认为是异常,抛出异常
如果不捕获处理可能会终止程序,我们可以在代码中主动捕获异常并处理
8.简单解释 Python 中以下划线开头的变量名特点。(6)
答:在python中,以下划线开头的变量名和方法名有特殊的含义,尤其是在类的定义中,用下画线作为变量名和方法名前缀和后缀来表示类的特殊成员。
(1)
(2)
(3)对象名._类名_ _xxx”这样的特殊方式来访问。
注:在IDLE交互模式下,一个下划线“_”表示在解释器中最后一次显示的内容或最后一次语句正确执行的输出结果,
9.简单解释文本文件与二进制文件的区别。(7)
10.简述文件的操作流程,并写出文件打开的模式有哪些。(6)
答:(1)打开文件并创建文件对象
(2)通过该文件对象对文件内容进行读取、写入、删除、修改等操作
(3)关闭并保存文件内容
f1 = open('text.txt','r')
f1.close()
| 模式 | 说明 |
| r | 读模式 |
| w | 写模式 |
| a | 追加模式 |
| b | 二进制模式(可与其他模式组合使用) |
| + | 读写模式(可与其他模式组合使用) |
r只读,r+读写,不创建
w新建只写,w+新建读写,二者都会将文件内容清零(以w方式打开,不能读出。w+可读写)
w+与r+区别:
r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建
r+与a+区别:
r+进行了覆盖写
以a,a+的方式打开文件,附加方式打开(a:附加写方式打开,不可读;a+: 附加读写方式打开)
11.简单解释 TCP 和 UDP 的区别。(10)
UDP:属于无连接协议,在UDP编程是不需要首先建立连接,而是直接向接收方发送信息。
TCP:使用TCP进行通信需要首先在客户端和服务端之间建立连接,并且要在通信结束后关闭连接以释放资源。TCP能够提供比UDP更好的服务质量,通信可靠性有本质上的提高。
12.简单介绍 socket 模块中用于 UDP 编程的常用方法。(10)
答:UDP编程经常用到的socket模块函数和套接字对象方法有3个。
(1)socket([family[,type[,proto]]]):socket模块函数,创建一个Socket对象,(其中family为socket.AF_INET表示IPv4,socket.AF_INET6表示IPv6;type为SOCK_STREAM表示TCP,SOCK_DGRAM表示UDP)
(2)sendto(string,address):套接字对象方法,把string指定的内容发送给address指定的地址,(其中address是一个包含接收方IP地址和应用进程端口号的元组,格式为(ip地址,端口号))
(3)recvfrom(bufsize[,flags]):套接字对象方法,用来接收数据
13.简单介绍 socket 模块中用于 TCP 编程的常用方法。(10)
答:TCP一般用于要求可靠数据传输的场合。编写TCP程序时经常需要用到的socket模块的函数或套接字对象方法主要有8个。
(1)socket():socket模块函数
(2)connect(address):套接字对象方法,连接远程计算机。
(3)send(bytes[,flags]):套接字对象方法,发送数据。
(4)recv(bufsize[,flags]):套接字对象方法,接收数据。
(5)bind(address):套接字对象方法,绑定地址。
(6)listen(backlog):套接字对象方法,开始监听,等待客户端连接。
(7)accept():套接字对象方法,响应客户端的请求。
(8)sendall(data[,flags]):套接字对象方法,发送全部数据。
14.简单介绍安全哈希算法。在 Python 中使用哪些库可以实现该类算法?
答:安全哈希算法也称为报文摘要算法,对任意长度的信息可以计算得到固定长度的唯一指纹。安全哈希算法是不可逆的,无法从指纹还原得到原始消息,属于单向变换算法,常用于数字签名领域。
实现算法的库:
15.简单介绍 RSA。在 Python 中怎么实现 RSA 算法?
答:
16.简述 RSA 密码体制算法过程。
(1)由用户选择两个互异并且距离较远的大素数p和q
(2)计算n=pxq和f(n)=(p-1)x(q-1)
(3)选择正整数e,使其与f(n)的1,然后计算正整数d,使得e x d对f(n)的1,即e x d≡1 mod f(n),最后销毁p和q
经过以上步骤,得出公钥(n,e)和私钥(n,d)。










请登录后查看评论内容