Python 程序设计-简答题

1. 在 Python 中导入模块中的对象有哪几种方式?(1)

1、导入整个模块,格式为【import 模块1[模块2[,...]]】;
2、与from联用导入整个模块,格式为【form 模块名 import*】;
3、与from联用导入一个或多个对象【from 模块名 import 对象1[,对象2[,对象...]]】。
————————————————

2. Python 脚本程序的“ __name__ ”变量及其作用。(1)

name 是模块在上下文中的名字,其直接由Python解释器运行时,等于字符"__main__",否则(被其他文件import进来时)等于模块名。
————————————————

3. 为什么说 Python 采用的是基于值的内存管理模式?(1)

Python中的变量并不直接存储值,而是存储了值的内存地址或者引用,假如为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址。
————————————————

4. 为什么应尽量从列表的尾部进行元素的增加与删除操作?(2)

当列表从中间或从头增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的大量的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。
————————————————

5. 分析逻辑运算符 or 的短路求值特性。(3)

假设有表达式“表达式1 or表达式2”,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。
表达式x or y中,x为真时,它直接返回x的值,否则返回y值。
————————————————

6. Python 异常处理结构有哪几种形式?(3)

1.默认异常处理器:即不做任何处理,程序出现错误时停止
2.try... except: 程序异常时执行except 语句
3.try... finally: finally 语句一定会执行,当执行finally 语句时程序中断
4.with... as:处理文件时使用
————————————————

7. 异常和错误有什么区别?(3)

异常是由错误产生的。
错误:
代码运行前的语法或者逻辑错误,
语法错误在执行前修改,逻辑错误无法修改
异常分为两个步骤:
1.异常产生,检查到错误且解释器认为是异常,抛出异常;
2.异常处理,截获异常,忽略或者终止程序处理异常
————————————————

8. 简单解释 Python 中以下划线开头的变量名特点。(5)

_xx:前置单下划线,私有化属性或方法,一般来讲,变量名_xx被看作是“私有 的”,在模块或类外不可以使用。当变量是私有的时候,用_xx 来表示变量是很好的习惯。类对象和子类可以访问,这并不能完全做到真正的私有,只是约定俗成的而已,这样写表示不希望这个变量在外部被直接调用。
__xx:前置双下划线,私有化属性或方法,无法在外部直接访问(名字重整所以访问不到,只能是允许这个类本身进行访问了。连子类也不可以)。
__xx__:前后双下划线,系统定义名字(这就是在python中强大的魔法方法),因为变量名__xxx__对Python 来说有特殊含义,对于普通的变量应当避免这种命名风格。
xx_:后置单下划线,用于避免与Python关键词的冲突。
————————————————

9. 简单解释文本文件与二进制文件的区别。(6)

文本文件是特殊的二进制文件,区别在于打开这个文件的程序在对其内容的解释不同。
————————————————

10. 简述文件的操作流程,并写出文件打开的模式有哪些。(6)

1.打开文件。open()
2.操作文件(读写)。res=f.read()
3.关闭文件。f.close()
文件打开模式:
1.文件操作的基础模式有三种(默认的操作模式为r模式):
r模式为read
w模式为write
a模式为append

2.文件读写内容的格式有两种(默认的读写内容的模式为b模式):
t模式为text
b模式为bytes
————————————————

11. 简单解释 TCP 和 UDP 的区别。(7)

TCP协议传输信息前要三次握手建立连接,结束后要四次握手断开连接;TCP协议的报文需要生成序列号来确认报文的准确性;TCP具有窗口机制来控制流量大小防止信息丢失。以上UDP协议都没有,UDP协议主要看重时效性。
————————————————

12. 简单介绍 socket 模块中用于 UDP 编程的常用方法。(7)

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.recvform(bufsize[,flags]):套接字对象方法,用来接收数据。
————————————————

13. 简单介绍 socket 模块中用于 TCP 编程的常用方法。(7)

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 中使用哪些库可以实现该类算法?(8)

Hash算法是将一个不定长的输入,通过散列函数变换成一个定长的输出,即散列值。这种散列变换是一种单向运算,具有不可逆性即不能根据散列值还原出输入信息,因此严格意义上讲Hash算法是一种消息摘要算法,不是一种加密算法。常见的hash算法有:SM3、MD5、SHA-1等 。

算法实现:
1.python中有内置的哈希函数hash(),可以返回一个对象(数字、字符串,不能直接用于 list、set、dictionary)的哈希值。
2.python标准库hashlib提供了常见的摘要算法,如MD5,SHA1
————————————————

15. 简单介绍 RSA。在 Python 中怎么实现 RSA 算法?(8)

RSA 加密算法是一种非对称加密算法。算法的可靠性由极大整数因数分解的难度决定。在公开密钥加密和电子商业中 RSA 被广泛使用。

————————————————

16. 简述 RSA 密码体制算法过程。(8)

1.选择 p、q两个超级大的质数(如1024位)。
2.令n = p q。取 φ(n) =(p-1) (q-1)。 计算与n互质的整数的个数。
3.取 e ∈ 1 < e < φ(n) ,( n , e )作为公钥对,真实环境中取65537。
4.令 ed mod φ(n) = 1,计算d,( n , d ) 作为私钥对。 计算d可以利用扩展欧几里的算法进行计算。
5.销毁 p、q。密文 = 明文 ^ e mod n , 明文 = 密文 ^ d mod n。利用蒙哥马利方法进行计算,也叫反复平方法。
————————————————

TAG:none

发表新评论