1、写出python导入模块的关键字((1)import,(2)from*import*)
2、写出Python运算符&的两种功能?(1)数字位运算;2)集合交集运算。)
3、简单解释Python基于值的自动内存管理方式?(Python采用的是基于值得内存管理
方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。)
4、在Python中导入模块中的对象有哪几种方式?(1)import模块名[as别名];
2)from模块名import对象名[as别名];3)frommathimport*)
5、解释Python脚本程序的“name”变量及其作用?(每个Python脚本在运行时都
有一个“name”属性。如果脚本作为模块被导入,则其“name”属性的值被自动设置为模块名;如果脚本独立运行,则其“name”属性值被自动设置为“main”。利用“name”属性即可控制Python程序的运行方式。)
6、为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,
列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。)
7、分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式1or表达式2”,
如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。)
8、简单解释Python中短字符串驻留机制?(对于短字符串,将其赋值给多个不同的对象时,
内存中只有一个副本,多个对象共享改副本。)
9、异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制流以外采取
的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。)
10、使用pdb模块进行Python程序调试主要有哪几种用法?(1)在交互模式下使用pdb
模块提供的功能可以直接调试语句块、表达式、函数等多种脚本。2)在程序中嵌入断点来实现调试功能。在程序中首先导入pdb模块,然后使用pdb.set_trace()在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态。
3)使用命令行调试程序。在命令行提示符下执行“python–mpdb脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb将重启该程序。)10、阅读下面的代码,并分析假设文件“D:\test.txt”不存在的情况下两段代码可能发
生的问题。
代码1:
>>>try:
fp=open(r'd:\test.txt')
print('Helloworld!',
file=fp)
finally:
fp.close()
代码2:
fp=open(r'd:\test.txt',
'a+')print('Hello
world!',file=fp)
答:
假设文件“D:\test.txt”不存在,那么第一段代码会抛出异常,提示fp没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。
11、下面的代码本意是把当前文件夹中所有html文件都改为htm文件,仔细阅读代码,
简要说明可能存在的问题。
importos
file_list=os.listdir(".")
forfilenamein
file_list:
pos=filename.rindex(".")
iffilename[pos+1:]=="html":
newname=
filename[:pos+1]+"htm"
os.rename(filename,newname)
print(filename+"更名为:"+newname)
对于字符串对象,如果要查找的子字符串不存在,则rindex()方法会抛出异常。所以,如果
当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。
12、
四、编程题
1、编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串helloworld。答:
fp=
open(r’D:\test.txt’,
‘a+’)print(‘hello
world’,file=fp)
2、写出下面代码的优化版本,提高运行效率。
x=
list(range(500))
foriteminx:
t=5**5
print(item
+t)
list(range(500))t
=5**5
print(item+t)
3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)