Python经典题库及答案
Python经典题库及答案一、简答题1、写出python导入模块的关键字(1import,2from * import *)2、写出Python 运算符的两种功能(1)数字位运算;2)集合交集运算。)3、简单解释Python基于值的自动内存管理方式(Python采用的是基于值得内存管理方式,在Python中可以为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。)4、 在 Python 中导入模块中的对象有哪几种方式( 1import 模块名 as 别名;2from 模块名 import 对象名 as 别名;3from 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、异常和错误有什么区别(异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等。) 模块提供的功能可以直接调试语句块、表达式、函数等多种脚本。2)在程序中嵌入断点来实现调试功能。在程序中首先导入pdb模块,然后使用pdb.set_trace在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态。3)使用命令行调试程序。在命令行提示符下执行“python m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb 将重启该程序。)10、阅读下面的代码,并分析假设文件“Dtest.txt”不存在的情况下两段代码可能发生的问题。代码1 tryfp openrdtest.txtprintHello world,filefpfinallyfp.close代码2 tryfp openrdtest.txt,a printHelloworld, filefpfinallyfp.close答假设文件“Dtest.txt”不存在,那么第一段代码会抛出异常,提示 fp 没有定义;第二段代码执行正常。原因是第二段代码使用内置函数 open打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。11、下面的代码本意是把当前文件夹中所有 html 文件都改为 htm 文件,仔细阅读代码,简要说明可能存在的问题。import os file_listos.listdir.for filename infile_listpos filename.rindex.if filenamepos1 htmlnewname filenamepos1htmos.renamefilename,newnameprintfilename更名为newname答对于字符串对象,如果要查找的子字符串不存在,则 rindex方法会抛出异常。所以,如果 当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。12、四、编程题1、编写程序,在 D 盘根目录下创建一个文本文件 test.txt,并向其中写入字符串 helloworld。答fp openrDtest.txt,a printhelloworld, filefpfp.close2、写出下面代码的优化版本,提高运行效率。x listrange500for item in xt 5**5printitemt答x listrange500 t 5**5for item in xprintitemt3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示使用切片。)答import randomx random.randint0,100 for i inrange20 printxy x2y.sortreverseTruex2 yprintx4、写出下面代码的执行结果。def JoinList, sepNonereturn sep or b, cprintJoina, b, c,答a,b,cabc5、写出下面代码的运行结果。def Suma, b3, c5return suma, b,c printSuma8,c2 printSum8printSum8,2答 16156、写出下面代码的运行结果。def Sum*preturnsumpprintSum3, 5,8 printSum8printSum8, 2,10答168207、编写函数,判断一个数字是否为素数,是则返回字符串 YES,否则返回字符串 NO。答import mathdefIsPrimevn intmath.sqrtv1for i in range2,nif vi0return Noelsereturn Yes8、编写函数,模拟 Python 内置函数sorted。答def Sortedvt vr while ttt mintr.appendttt.remove return r9、编写程序,生成包含 20 个随机数的列表,然后将前 10 个元素升序排列,后 10 个元素降序排列,并输出结果。答import randomx random.randint0,100 for i inrange20 printxy x010y.sortx010 yy x1020y.sortreverseTrue x1020 yprintx10、编写程序,运行后用户输入4 位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被 4 整除但不能被 100 整除也为闰年。答x Please an integer of 4 digits meaningthe year x xif x4000 or x40 and notx1000 printYeselseprintNo11、编写程序,实现分段函数计算,如下表所示。xx000x55x1010x2020xx3x-50.5x-20答x Please x x xif x0 orx20print0elif 0x5printxelif5x10print3*x-5elif 10x20print0.5*x-2 运行则写出理由。class Testdef init self, valueself. value valuedef valueselfreturn self. valuetTest3t.value5printt.value答不能运行。程序中定义的是只读属性,不能修改属性的值。13、下面代码的功能是,随机生成50个介于1,20之间的整数,然后统计每个整数出现频率。请把缺少的代码补全。import randomxrandom.r dict1,20 for iin rangefor i in xrir.geti,1 for k, v inr.itemsprintk, v答分别填写randint、50、014、假设有Python 程序文件demo.py,代码如下def mainif name mainprint1elseprint2main将该程序文件直接运行时输出结果为(1、2),作为模块导入时得到结果-。15、下面程序的执行结果是。 ( 1 )s 0for i in s ielseprint116、下面程序的执行结果是。 ( 1275 )s 0for i inrange1,101s iif i 50printsbreakelseprint117、下面的程序是否能够正常执行,若不能,请解释原因;若能,请分析其执行结果。from random import randintresult set whileTrueresult.addrandint1,10 if lenresult20breakprintresult答无法正确执行,因为该程序的功能是从1,10区间中选择 20 个不同的随机整数,而该区间并没有这么多整数,所以程序死循环。18、下面的代码是否能够正确运行,若不能请解释原因;若能,请分析其执行结果。 x listrang