Python经典题库及答案
一、简答题
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)from math import *)
5、解释Python 脚本程序的“name ”变量及其作用?(每个Python 脚本在运行时都
有一个“name ”属性。如果脚本作为模块被导入,则其“name ”属性的值被自动设置为模块名;如果脚本独
立运行,则其“name ”属性值被自动设置为“main”。利用“name”属性即可控制Python程序的运行方式。)
6、为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,
列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。)7、分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式1 or 表达式2”,
如果表达式1 的值等价于True,那么无论表达式2 的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。)
8、简单解释Python中短字符串驻留机制?(对于短字符串,将其赋值给多个不同的对象时,
内存中只有一个副本,多个对象共享改副本。)
9、异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制流以外采取
python中的字符串是什么的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。)
模块提供的功能可以直接调试语句块、表达式、函数等多种脚本。2)在程序中嵌入断点来实现调试功能。在程序中首先导入pdb模块,然后使用pdb.set_trace()在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态。
3)使用命令行调试程序。在命令行提示符下执行“python –m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb 将重启该程序。)10、阅读下面的代码,并分析假设文件“D:\”不存在的情况下两段代码可能发
生的问题。
代码1:
>>> try:
fp = open(r'd:\')
print('Hello world!',
file=fp)
finally:
fp.close()
代码2:
>>> try:
fp = open(r'd:\',
'a+') print('Hello
world!', file=fp)
finally:
fp.close()
答:
假设文件“D:\”不存在,那么第一段代码会抛出异常,提示fp 没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。
11、下面的代码本意是把当前文件夹中所有html 文件都改为htm 文件,仔细阅读代码,
简要说明可能存在的问题。
import os
file_list=os.listdir(".")
for filename in
file_list:
pos = filename.rindex(".")
if filename[pos+1:] == "html":
newname =
filename[:pos+1]+"htm"
print(filename+"更名为:"+newname)
答:
对于字符串对象,如果要查的子字符串不存在,则rindex()方法会抛出异常。所以,如果
当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。
12、
四、编程题
1、编写程序,在 D 盘根目录下创建一个文本文件 ,并向其中写入字符串 hello world。答:
fp =
open(r’D:\’,
‘a+’)print(‘hello
world’, file=fp)
fp.close()
2、写出下面代码的优化版本,提高运行效率。
x =
list(range(500))
for item in x:
t = 5**5
print(item
+t)
答:
x =
list(range(500)) t
= 5**5
for item in x:
print(item+t)
3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)
答:
import random
x = [random.randint(0,100) for i in
range(20)] print(x)
y = x[::2]
y.sort(reverse=True)
x[::2] = y
print(x)
4、写出下面代码的执行结果。
def Join(List, sep=None):
return (sep or
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论