Python经典题库及答案.pdf
《Python经典题库及答案.pdf》由会员分享,可在线阅读,更多相关《Python经典题库及答案.pdf(50页珍藏版)》请在咨信网上搜索。
1、Python经典题库及答案、简答题1、写出python导入模块的关键字(import,from*import*)2、写出Python运算符&的两种功能?(1)数字位运算;2)集合交集运算。)3、简单解释 Python基于值的自动内存管理方式?(Python采用的是基于值 得内存管理方式,在 Python中可以为不同变量赋值为相同值,这个值在内存中 只有一份,多个变量指向同一个内存地址;Python具有自动内存管理功能,会自动跟踪内存中所有的值,对于没有任何变量指向的值,Python自动将其删除。)4、在Python中导入模块中的对象有哪儿种方式?import模块名as别名;2)from 模块名
2、 import 对象名as 别名;3)from math import*5、解释 Python脚本程序的“name”变量及其作用?(每个 Python脚本在 运行时都有一个“name”属性。如果脚木作为模块被导入,则其“name”属性 的值被自动设置为模块名;如果脚本独立运行,则其“name”属性值被自动设置 为“main”。利用“name”属性即可控制Python程序的运行方式。)6、为什么应尽量从列表的尾部进行元素的增加与删除操作?(当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除 操
3、作以提高处理速度。)7、分析逻辑运算符“or”的短路求值特性?(假设有表达式“表达式1。1表 达式 2,如果表达式1的值等价于True,那么无论表达式2的值是什么,整个表达式的值总是等价于 True o因此,不需要再计算表达式 2的值。)8、简单解释 Python中短字符串驻留机制?(对于短字符串,将其赋值给 多个不同的对象时,内存中只有一个副本,多个对象共享改副本。)9、异常和错误有什么区别?(异常是指因为程序执行过程中出错而在正常控制 流以外米取的行为。严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会 导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在 的文
4、件,等等。)10、使用pd b 模块进行 Python程序调试主要有哪几种用法?(1)在交互模式下使用pd b模块提供的功能可以直接调试语句块、表达式、函数等多种 脚本。2)在程序中嵌入断点来实现调试功能。在程序中首先导入 pd b模块,然后使用 pd b.se t_trace()在需要的位置设置断点。如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开 pd b调试环境,即使该程序当前不处于调试状态。3)使用命令行调试程序。在命令行提示符下执行“python-m pd b脚本文件 名”,则直接进入调试环境;当调试结束或程序正常结束以后,pd
5、b将重启该程序。)11、阅读下面的代码,并分析假设文件“D:te st.txt”不存在的情况下两段代码 可能发生的问题。代码1:try:fp=ope n(rd:te st.txt)print(He llo world!,file=fp)finally:fp.close()代码2:try:fp=ope n(rd:te st.txt,a+)print(He llo world!,file=fp)finally:fp.close()答:假设文件“D:te st.txt”不存在,那么第一段代码会抛出异常,提示 fp没有定 义;第二段代码执行正常。原因是第二段代码使用内置函数 ope n。打开指定文件时
6、如果不存在则会创建该文件,从而不会抛出异常。12、下面的代码本意是把当前文件夹中所有 html文件都改为htm文件,仔细阅读代码,简要说明可能存在的问题。import osfile _list=os.listd ir(.)for file name in file jist:pos=file name.rind e x(.)if file name pos+1:=html:ne wname=file name :pos+1+htm os.re name(file name,ne wname)print(file name+更名为:+ne wname)答:对于字符串对象,如果要查找的子字符串不存
7、在,则 rind e x()方法会抛出异常。所以,如果当前文件夹中有不包含圆点的文件名或者子文件夹名,上面的代码会抛出异常而崩溃。四、编程题1、编写程序,在 D 盘根目录下创建一个文本文件 te st.txt,并向其中写入字符串 he lloworld o 答:fp=ope n(r Dt:e st.txt ,(a+)printf he llo world ,file=fp)fp.close()2、写出下面代码的优化版本,提高运行效率。x=list(range(500)for ite m in x:t=5*5 print(ite m+t)答:x=list(range(500)t=5*5for i
8、te m in x:print(ite m+t)3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)答:import rand omx=rand om.rand int(0,100)for i in range(20)print(x)y=x:2y.sort(re ve rse=True)x:2=yprint(x)4、写出下面代码的执行结果。d e f Join(List,se p=None):re turn(se p or,).j oin(List)print(Join(a,b,c)print(Join(a,b,c,:)
9、答:a,b,ca:b:c5、写出下面代码的运行结果。d e f Sum(a,b=3,c=5):re turn sum(a,b,c)print(Sum(a=8,c=2)print(Sum(8)print(Sum(8,2)答:1316156、写出下面代码的运行结果。d e f Sum(*p):re turn sum(p)print(Sum(3,5,8)print(Sum(8)print(Sum(8,2,10)答:168207、编写函数,判断一个数字是否为素数,是则返FI字符串 YES否则返回字符 串NO。答:import math d e f IsPrime(v):n=int(math.sqrt(
10、v)+1)for i in range(2,n):if v%i=0:re turn Noe lse:re turn Ye s8、编写函数,模拟Python内置函数sorte d()o 答:d e f Sorte d(v):t=v:r=while t:tt=min(t)r.appe nd(tt)t.re move(tt)re turn r9、编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。答:import rand omx=rand om.rand int(0,100)for i in range(20)print(x)y=x 0:10y.so
11、rt()x 0:10=y y=x 10:20y.sort(re ve rse=T rue)x 10:20=yprint(x)10、编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被 4整除但不能被100整除也为闰年。答:x=input(Ple ase input an inte ge r of 4 d igits me aning the ye ar:)x=e val(x)if x%400=0 or(x%4=0 and not x%100=0):print(Ye s)e lse:print(No)11、编写程序,实现分段函数计算,如下表所
12、示。xyx000=x5x5=x103x-510=x200.5x-220=x0答:x=input(Ple ase input x:)x=e val(x)if x=20:print(O)e lif 0=x5:print(x)e lif 5=x10:print(3*x-5)e lif 10=x 50、014、假设有Python程序文件d e mo.py,代码如下:d e f main():ifname=main:print(1)e lse:print(2)main()将该程序文件直接运行时输出结果为,作为模块导入时得到结果-。(1、2)15、下面程序的执行结果是。(1)s=0 for i inran
13、ge(1,101):s+=ie lse:print(1)16、下面程序的执行结果是。(1275)s=0 for i inrange(1,101):s+=iif i=50:print(s)bre ake lse:print(1)17、下面的程序是否能够正常执行,若不能,请解释原因;若能,请分析其执行结果。from rand om import rand intre sult=se t()while True:re sult.ad d(rand int(1,1 0)if le n(re sult)=20:bre ak print(re sult)答:无法正确执行,因为该程序的功能是从1,10区间中
14、选择20个不同的随机 整数,而该区间并没有这么多整数,所以程序死循环。18、卜面的代码是否能够正确运行,若不能请解释原因;若能,清分析其执行结果。x=list(range(20)for i inrange(le n(x):d e l x i答:无法正确执行,因为删除列表元素时会影响其他元素在列表中的索引,上面 的代码会抛出下标越界的异常。19、阅读下面的代码,解释其功能。x=list(range(20)for ind e x,value in e nume rate(x):if value=3:x ind e x=5答:将列表 x中值为3的元素修改为5 o20、阅读下面的代码,解释其功能。x=
15、range(3*i,3*i+5)for i in range(2)x=list(map(list,x)x=list(map(list,zip(*x)答:首先生成一个包含列表的列表,然后模拟矩阵转置。21、阅读下面的代码,解释其功能。import string x=string.asciije tte rs+string.d ig its import rand omprint(.join(rand om.sample(x,10)答:输出由英文字母大小写或数字组成的长度为 10且不重复的随机字符串。22、阅读下面的代码,分析其执行结果。d e f d e mo(*p):re turn sum(p
16、)print(d e mo(1,2,3,4,5)print(d e mo(1,2,3)答:输出结果为15623、阅读下面的代码,分析其执行结果。d e f d e mo(a,b,c=3,d=100):re turn sum(a,b,c,d)print(d e mo(1,2,3,4)print(d e mo(1,2,d=3)答:输出结果为10924、下面的代码输出结果为。(3)d e fd e mo():x=5x=3d e mo()print(x)25、下面函数的功能为。(将序列循环左移k位,得到新序列并返回)d e f d e mo(lst,k):if k for x inrange(21):
17、for y in range(34):z=100-x-yif z%3=0 and 5*x+3*y+z/3=100:print(x,y,z)0 25 754 18 788 11 8112 4 84(2)列表推导式 (x,y,100-x-y)for x in range(21)for y in range(34)if(100-x-y)%3=0and 5*x+3*y+(100-x-y)/3=100(0,25,75),(4,18,78),(8,11,81),(12,4,84)29、编写函数,给定任意字符串,找出其中只出现一次的字符,如果有多个这样的字符,就全部找出。d e f se archOne(s
18、):#创建空字典d=d ict()#遍历字符串,并分别记录每个字符的出现次数for ch in s:#这里重点演示字典的ge t()方法#如果这个字符出现过,加1#如果这个字符第一次出现,0+1d ch=d.ge t(ch,0)+1#列表推导式,查找所有只出现一次的字符chs=ch for ch,n in d.ite ms()if n=1#返回最终结果,所有只出现一次的字符re turn chsprint(se archOne(abcd d dca)30、阅读以下冒泡法排序代码,尝试写出优化代码,提高代码运行效率。rand om import rand int fromd e fbubble
19、Sort(lst):le ngth=le n(lst)for i in range(0,le ngth):for j in range(0,le ngth-i-1):#比较相邻两个元素大小,并根据需要进行交换 if lst j lst j+1:lst j,lst j+1=lst j+1lst j 1st=rand int(1,100)for i in range(20)printfBe fore sortin,1st)bubble Sort(lst)print(Afte r sortin,1st)参考答案:from rand om import rand intd e fbubble Sort
20、(lst):le ngth=le n(lst)for i in range(0,le ngth):flag=Truefor j in range(0,le ngth-i-1):#比较相邻两个元素大小,并根据需要进行交换 if lst j lst j+1:IstQ,lstO+1=lst j+1,lst j flag=Falseif flag:bre ak1st=rand int(1,100)for i in range(20)printfBe fore sortin,1st)bubble Sort(lst)print(Afte r sortin,1st)31、编写程序,用户输入带有千分位逗号的数
21、字字符串,逗号的数字字符串。如果输入字符串0则退出程序。参考答案:d e f conve rt(strNumbe r):re turn.j oin(strNumbe r.split(,)while True:x=input(输入带有千分位逗号的数字:)if x=O:print(bye)bre akprint(conve rt(x)32、编写程序,用户输入不带千分位逗号的数字字符串,号的数字字符串。参考答案:d e f conve rt(strNumbe r):#考虑小数的情况te mp=strNumbe r.split(.,1)#整数部分first=te mp 0if not first.is
22、d igit():re turn,不是有效数字#小数部分try:se cond=te mp 1if not se cond.isd igit():re turn 不是有效数字,e xce pt:然后输出不带千分位然后输出带千分位逗se cond=#增加千分位逗号d e f ne ste d(s):re sult=le ngth=le n(s)ind e x=le ngth%3 if ind e x!=0:re sult.appe nd(s:ind e x)for i in range(ind e x,le ngth,3):re sult.appe nd(s i:i+3)re turn V.j
23、oin(re sult)first=ne ste d(first)#小数部分和整数部分的千分位不一样if se cond:se cond=Join(re ve rse d(se cond)se cond=ne ste d(se cond)se cond=Join(re ve rse d(se cond)#删除两侧可能的0和千分位逗号re turn.j oin(first,se cond).stripC,O)#删除整数左侧可能的0和逗号re turn first.lstrip(O,)#测试while True:x=input(输入不带千分位逗号的数字:)if x=O:print(bye)bre
24、akprint(conve rt(x)二、填空题1、Python安装扩展库常用的是工具。(pip)2、Python标准库 math 中用来计算平方根的函数是。(sqrt)3、Python程序文件扩展名主要有和两种,其中后者常用于 GU I程序。(py、pyw)4、Python源代码程序编译后的文件扩展名为。(pyc)5、使用pip工具升级科学计算扩展库numpy的完整命令是。(pipinstall-upgrad e numpy)6、使用pip工具查看当前已安装的Python扩展库的完整命令是。(piplist)7、在IDLE交互模式中浏览上一条语句的快捷键是。(Alt+P)8、在Python中
25、表示空类型。(None)9、列表、元组、字符串是Python的(有序?无序)序列。(有序)10、查看变量类型的Python内置函数是。(type。)11、查看变量内存地址的Python内置函数是。(id()12、以3为实部 4为虚部,Python复数的表达形式为或。(3+4j、3+4J)13、Python运算符中用来计算整商的是。()14、Python运算符中用来计算集合并集的是。(|)15、使用运算符测试集合包含集合 A是否为集合B的真子集的表达式可以写作o(AB)16、命令既可以删除列表中的一个元素,也可以删除整个列表。(d e l)17、表达式 iM(123,16)的值为。(291)18
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 经典 题库 答案
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。