Python经典题库及答案
一、简答题
1、写出python导入模块的关键字((1)import,(2)from * import *数据结构经典编程题)
2、 写出 Python 运算符&的两种功能?(1)数字位运算;2)集合交集运算。)
3、 简单解释 Pythomv素材网站n 基于值的自动内存管理方式?(Python 采用的是基于值得内存管理方式,在 Python 中可以为不同变量赋值linux电子书pdf为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;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、 为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之discuz培训类模板间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操作以提高处理速度。)
7、 分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式 1 or 表达式 2”,如果表达式 1 的值等价于 True,那么无论表达式 2 的值是什么,整个表达式的值总是等价于 True。因此,不需要再计算表达式 2 的值。)
8、 简单解释 Python 中短字符串驻留机制?(对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享改副本。)
9、 异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。)
10、 使用 pdb 模块进行 Python 程序调试主要有哪几种用法?(1)在交互模式下使用 pdb 模块提供的功能可以直接调试语句块、表达式、函数等多种脚本。2)在程序中嵌入断点来实现调试功能。在程序中首先导入 pdb 模块,然后使用 pdb.set_trace()在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb 调试环境,即使该程序当前不处于调试状态。
3)使用命令行调试程序。在命令行提示符下执行“python –m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb 将重启该程序。)
10、 阅读下面的代eval函数能不能转换多个码,并分析假设文件“D:\test.txt”不存在的情况下两段代码可能发生的问题。
代码 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" os.rename(filename,newname)
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、编写程python基础知识试题序,生成一个包含 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 ',').join(List) print(Join(['a', 'b', 'c']))
print(Join(['a', 'b', 'c'],':'))
答:
a,b,c
a:b:c
5、写出下面代码的运行结果。 def Sum(a, b=3, c=5):
return sum([a, b, c]) print(Sum(a=8, c=2)) print(Sum(8))
print(Sum(8,2))
答:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论