版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python练习题库
By郑红波2017-12-19
一、填空题
I.Pylhon标准库malh中用来计算平方根的函数是。(sqrt)
2.在Python中表示空类型.(None)
3.列表、元组、字符串是Python的(有序?无序)序列.(有序)
4.查看变量类型的Python内置函数是。(type())
5.查看变量内存地址的Python内置函数是.(id())
6.表达式[1,2,3]*3的执行结果为。([1,2,3,1,2,3,1,2,3])
7.list(map(str,[1,2,3]))的执行结果为。3])
8.已知x=3,并且id(x)的返回值为496103280,那么执行语句x+=6之后,表达式id(x)==
496103280的值为。(False)
9.已知x=3,那么执行语句x*=6之后,x的值为.(18)
10.表达式“⑶in[1,2,3,4]”的值为.(False)
1.假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:7]得到
的值是。([6,7,9,111)
12.使用列表推导式生成包含10个数字5的列表,语句可以写为o([5foriinrange
(10)])
13.假设有列表a=[*name','age','sex']和b=「Dong',38,'Male*],请使用一个语句将这两个列
表的内容转换为字典,并且以列表a中的元素为“键二以列表b中的元素为“值”,这个语句
可以写为.(c=diet(zip(a.b)))
14.任意长度的Python列表、元组和字符串中最后一个元素的下标为。(-1)
15.Pylhon语句''.join(list('helloworld!*))执行的结果是。('helloworld!
1)
16.转义字符的含义是.(回车换行)
17.Python语句list(range。,10,3))执行结果为。([1,4,7])
18.切片操作lisi(range⑹比:2]执行结果为。([(),2,4])
19.表达式‘ab'in'acbed'的值为。(,False)
20.Python3。x语句print(1,2,3,scp=':')的输出结果为。(1:2:3)
21.表达式int(4**0。5)的值为。(2)
22.达式sorted([式1,2,33],key=lambdax:-lcn(str(x)))的值为。([ill,33,2])
23.已知列表对象x=['11','2',3],则表达式max(x)的值为.(3)
24.表达式min(『11','2',3])的值为。('ll,)
25.已知列表对象x=['I「,'2','3'],则表达式max(x、key=len)的值为o(UI')
26.语句x=(3,)执行后x的值为。((3,))
27.语句x=(3)执行后x的值为.(3)
28.己知x={1:2},那么执行语句x[2]=3之后,x的值为o<{1;2,2;3))
29.字典对象的方法返回字典中的“键-值对”列表.(items())
30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作
____________________________________o([iforiinrange(100)ifi%13==0])
31.表达式3**2的值为0(9)
32.表达式3*2的值为o(6)
33.已知x=[3,5,7J,那么执行语句x[len(x):]=[1,2]之后,x的值为。
([3,5,7,1,21)
34.表达式list(zip([1,2],[3,4]))的值为o([(1,3),(2,4)])
35.已知x=[l,2,3,2,3],执行语句x.popO之后,x的值为.([1,2.3,2])
36.表达式[xforxin[1,2,3,4,5]ifx⑶的值为.([1,2])
37.表达式[indexforindex,valueinenumerale([3,5,7,3»7])ifvalue==max([3,5,7,3,7])]的值
为。([2,4])
38.已知path=r'c:\testohtml',那么表达式path[:-4]+,htm,的值为_________。(*c:Wtest.htm')
39.表达式'%d,%d%(65,65)的值为。('65,A')
40.表达式'Thefirst:{1},thesecondis{0}'.format(65»97)的值为
。(Thefirst:97,thesecondis65,)
41.表达式.join('abcdefg'。split—cd'))的值为。('ab:efg')
42.表达式isinstance(tabedefg',str)的值为。(True)
43.表达式"Helloworld.IlikePython.\find('python')的值为。(-1)
44.表达式:'.join('abccc\n\n\ndddsplit。)的值为°('a,b,ccc,ddd')
45.已知x='123'和y='456',那么表达式x+y的值为。('123456')
46.表达式'abcab'.replace('a','yy')的值为。('yybcyyb')
1
47.已知table="omaketransCabcw,'xyzc'),那么表达式'Hellowworld*»translate(table)的
值为cCHelloccorld')
48.已知x={'a':2},那么执行语句x。update({'a':3,'d,:4})之后,表达式sorted(x.items
0)的值为,([Ca',3),('b',1),Cd,,4)1)
49.已知x=list(range(20)),那么语句print(x[100:200])的输出结果为.([])
50.表达式sorted({'a':9,'b':3,'c':78}。values())的值为°([3,9,78])
51.type(1+2*3.14)的结果是:floatclass
二、阅读程序
I.写出下面代码的执行结果。
defJoin(List,sep=None):
return(sepor',')。join(List)
print(Join(['a','b*,'cf1))
print(Join(「a:'b',c*]/:'))
答:
a,b,c
a:b:c
2.若k为整数,下述while循环执行的次数为:9
k=1(X)()
whilek)1:
print(k)
k=k//2
3.写出下面代码的运行结果。
defSum(a,b=3,c=5):
returnsum([a,b,c])
print(Sum(a=8»c=2))
print(Suni(8))
prinl(Sum(8,2))
答:
13
16
15
4.写出卜.列程序输出结果
i=l
whilei+1:
ifi)4:
print("%d"%i)
i+=l
break
print(”%d"%i)
i+=l
i+=l
5.写出下面代码的运行结果。
defSum(*p):
returnsum(p)
print(Sum(3,5,8))
print(Sum(8))
print(Sum(8,2,10))
答:
16
8
20
6.下面程序的执行结果是。(1)
s=0
foriinrange(1,101):
s+=i
else:
print(1)
7.下面程序的执行结果是o(1275)
s=0
foriinrange(l,101):
s+=i
ifi==50:
print(s)
break
else:
print(1)
8.阅读下面的代码,输H结果为。
x=list(range(10))
forindex,valueinenumerate(x):
ifvalue==3:
x[indcxl—5
else:
print(x)
答:将列表x中值为3的元素修改为5.
9.阅读下面的代码,解释其功能:________________________________________________
»>importstring
»>x=string.asciijetters+string.digits
>>>importrandom
>»print,'.join(randomosample(x,10)))
答:输出由英文字母人小写或数字组成的长度为10且不重复的随机字符串。
10.下面的代码输出结果为。(3)
17.下面程序打印结果:
foriinrange(1,7):
print(''*2*(6—i),end=")
forjinrange(i,0,—11:
print(j,end='^,^)
print()
18.下面程序输入〉>>rev(4Iloveyou5)返回值为youloveI
defrevl(s):
s=s.split()
sl=**ojoin(reversed(s))
returns1
19.阅读程序,打印结果是1000
defaddlnterest(balance,rate):
newBa!ance=balance:f:(I+rate)
balancc=ncwBalancc
defmain():
amount=1000
rale=0o05
addInterest(amount,rate)
print(amount)
main()
20.阅读程序,打印结果是_____________________________________
defdemo(newitem.old_list=L]):
oldjist.appcnd(newitem)
returnoldjist
defmain():
print(demo(<a,))
print(demo('h'))
main()
答案:l?T]
21.阅读程序,打卬结果是______________________________________
deffuncS(a,b,*c):
print(a,b)
print("lengthofcis%d,cis"%len(c),c)
func5(l,2,3,456)
答案:12
lengthofcis4,cis(3,4,5,6)
22.阅读程序,打印结果是(2.5,3,4)_________________________________
defdemo(*para):
avg=sum(para)/len(para)
g=[iforiinparaifi>avg]
return(avg,)+tuple(g)
print(demo(1,2,3»4))
23.阅读程序,打卬结果是
deff(w=l,h=2):
print(w,h)
f()
f(w=3)
f(h=7)
f(a=3)
答案:12
32
17
错误
24.阅读程序,打印结果是
defsort(number1,rumber2):
ifnumber1(nunibcr2:
returnnumber1,number2
else:
returnnumber?,number1
nl,n2=sort(3,2)
print('nlis\nl)
print('n2is\n2)
答案:nlis2
n2is3
25.阅读程序,打印结果是1060
defdemo(ni,n):
ifm)n:
m,n=n,m
p=m*n
whilem!=0:
r=n%m
n=m
m=r
return(n.p//n)
print(demo(20,30))
三、程序填空题
I.下面代码的功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。请
把缺少的代码补全.
importrandom
x=[randomo11,20)foriinrange()]
r=diet()
foriinx;
r[i]=Toget(i,)+1
fork,vinr.ilems():
print(k,v)
答:
分别填写randint>50、0
2.生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高
频字符,以5个位右对齐输出个数。清把缺少的代码补全。
importrandom
x=string.,ascii_letters+string.digils+string.punctuation
y=[foriinrange(1000)]
d=diet()
forchiny:
d[ch]=doget(ch,0)+1
/tems=list(d.items())
itemsosort(,reverse=True)
foriinrange(20):
word,count=items[i]
print(%(word,count))
答案:importstring、random(>choice(x)、key=lambdax:x[1“%—15s%5d”
3.用户输入5,打印如右图字符金字塔图形,请补全代码:
『input('输入行数:‘)
&
fbriinrange(l,n+l):&&&
print(,cnd=€*)&&&&&
forjinrange(l,2*i):
print('&',)&&&&&&&
print()
答案:n=int(n),''*(n-i),cnd=M
4.质因数分解,如输入60,则得到6()=2*2*3*5。请补全代码:
x=eval(input(”请输入小于1000的整数:”))
k=2
whilex>1:
print(k,end二
x=x//k
ifx)1:
print("*",end="”)
else:
答案:print(x,"=",end="”),x%k==0,k+=1
5.验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和,请补全代码.
importmath
x=eval(input(“输入一个数”))
whilex<6orx%2==l:#大于6的偶数
x二eval(input(“输入一个数”))
fornlin:
ml=int(mathosqrt(nl)+1)
foriinrange(2,ml):#2-sqrt(nl)
if___________________________
break
else:
m2=ma(hoceil(ma(h.$qrt(n2)+1)
forjinrange(2,m2):
ifn2%j==Oandj<n2:
else:
print(x,nh'+',n2)
答案:range(3»x〃2,2),nl%i==0,n2=x—nl,break
6.右对齐九九乘法表,请补全代码:
1X1=1
foriinrange(1,10):2X1=22X2=4
3X1=33X2=63X3=9
4X1=44X2=84X3=124X4=16
sl=stKi)+'x」str(j)+'='+str(i*j5X1=55X2=105X3=155X4=205X5=25
6X1=66X2=126X3=186X4=246X6=306X6=36
print()7X1=77X2=147X3=217X4=287X5=357X6=427X7=49
print()8X1=88X2=168X3=248X4=328X5=408X6=488X7=568X8=64
9X1=99X2=189X3=279X4=369X5=459X6=549X7=639X8=729X9:
答案:forjinrange(l»i+l):/%8s,%(sl),end=M
7.输出右边图形,请补充程序:*
***
fori:*****
*******
print((4*'*(2*i—1)).center(30))*****
********
foriinrange(6»0,—1):********
*******
print()*****
***
答案:inrange(6);('**(2*1-1)).center(5*n)*
8.下面代码判断回文串,请补全代码:
s=,雾锁山头山锁雾,
low=0
high=__________________
whilelow(high:
if:#倒序和顺序不一样
print(s,"不是回文”)
low+=1
else:
print(s,“是回文串”)
答案:len(s)—l,s[low]!=s[high],break,high-=l;
9.输出右边图形,请补充程序;
s-MIamateacher!Youarestudents!统计信息
printC='*30)行数1
print("统计信息'.center(28))单词数7
字符数(包含空格)33
print()字符数(不包含空格)27
item_width=25
line=s.count('\n')+1
word二s。split()
char=list(s)#包含空格、标点符号
w_num=0
forwinword:
wnum+=
print(,%一*s%5d'%(item_width-3,'行数',line))
print('%・*s%5d'%(,'单词数',len(word)))
printf%-*s%5d'%(ilem_widlh—10,*字符数(包含空格)',))
print('%—*s%5d'%(item_width-l1,'字符数(不包含空格)',w_num))
print('-,*30)
答案:'-'*30;len(w);item_width-4;len(char)
10.输出右边图形,请补充程序:
defdemo(t):
U
print([1])N1]
1
331—
64
1
1
line=ll,l]45,0,1
»5,1]
1510
foriinrange(2,t):»20
6,2115,6,1]
7&,2•3535,21,7,1]
856
36»70,56,28,8,1]
9,84
forjinrange(0,len(line)-1):»126,126,84,36,9,1]
reappend()
line=[l]+r+[1]
print(line)
demo()
答案:print([1,1]),r=\],line[j]+案e[j+l],10
四、编程题
I.编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串helloworlds
答:
fp=opcn(r'D:\tcst.txt','a+')
print(4helloworld'»file=fp)
fp.close()
2.编写程序,生成一个包含2()个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下
标的元素不变。(提示:使用切片。)
答:
importrandom
x=[randomorandint(0,100)foriinrange(20)]
prinl(x)
y=x[::2]
y.sort(reverse=True)
x[::2]=y
print(x)
3.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NOo再编写测
试函数.
答:
importmath
defIsPrime(v):
n=int(math.sqrt(v)+1)
foriinrange(2,n):
ifv%i==0:
reium'No'
else:
return'Yes'
print(IsPrime(77))
4.编写函数,模拟Python内置函数sorled(lsl).
答:
defsorted(v):
t=v[::]
r二U
whilet:
tt=min(t)
r。append(lt)
toremove(tt)
returnr
print(sorted([l,3,2,4])
5.编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,
并输出结果.
答:
importrandom
x=[random.randint(0,100)foriinrange(20)]
print(x)
y=x[0:10]
y。sort()
x[0:10]=y
y=x[10:20]
y.sort(rcvcrsc=Truc)
ifx<0orx>=20:
print(0)
elif0<=x<5:
print(x)
elif5<=x<10:
print(3*x—5)
elif10<=x<20:
print(Oo5*x—2)
8.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同
学,最后打印最高分、最低分、平均分、最高分同学。
scores={"ZhangSan^:45,Si":78,"WangWu":40,"ZhouLiu“:96,"ZhaoQi“:65,"SunBa":
90,“ZhengJiu“:78,“WuShi":99,"DongShiyi”:60}
highest=max(scorcsovalues())
lowest=min(scoresovaluesO)
average=sum(scorcs.values())/lcn(scores)
highestPerson=[nameforname,scoreinscoresoitems()if/score==highest]井分行
print(highest,lowest,average.highestPerson)
9.统计不及格的学生及成绩,要求:给定一此学生姓名和成绩;询问用户是否还需要输入更多的
学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩.
d=张三”,76],["李四",45],["王五”,83],[”郑六”,66],[3,54],['c',68],['bl89]]
sl=input("输入数据YorN:")。strip()#去掉前后空格
whilesi='¥*:
s2=input(”请输入学生及成绩(空格隔开)")
name,grade=s2osplit()
doappend([name»grade])
#d[name]=int(grade)
si二input("继续输入YorN:").strip()
else:
print(d)
print("不及格的名单:“)
fbrname,gradeind:
iffloat(grade)(60:
print("姓名:",name,"\t","成绩:",grade)
10.由用户一个一个输入一个数值型列表,然后将每个元素逐一打印。
lst=[]
n=eval(input("请输入数字个数:”))
fbriinrange(n):
number=eval(inpiit("请输入数字:”))
Ist.append(number)
forvaluein1st:
print(value,end=,')
11.序列求和,n通过用户输入:1一!+4一1+...+(-1)-11
n=im(input(“请输入N的值:”))234n
s=0
fh=l
foriinrange(1,n+l):
s+=fh*l/i#求和语句
fh=—fh#正负交替
printC*1—1/2+1/3-1/4.,.+(-1)A(n-1)/n=M,s,i)
12.生成•个包含50个两位随机整数的列表,然后删除其中的所有奇数(提示从后向前删)
lst=[random(>randint(l,l(X))foriinrange(50)]
prim('5O个随机两位整数
k=lcn(1st)—1
foriinrange(k,-1,—1):#从后往前删,减少列表元素移动
if1st[i]%2==1:
Ist.pop(i)
print("偶数为“Jst)
13.恺撒(kaisa)密码:原文:ABCDEFGH1JKLMNOPQRSTUVWXYZ,对应的密文为:
DEFGHIJKLMNOPQRSTUVWXYZABC,请设计程序实现之.
plaincode二input('请输入明文:')
fbrpinplaincode:
if'a'<=pv='z':
c=chr(ord('a,)+(ord(p)-ord('a,)+3)%26)
井。rd是字符编码的值,都减掉ord(W)才可以得到字符的顺序0—25
print(c,cnd=,*)
elif'A*<=p〈=Z:
c=chr(ord(1A')+(ord(p)―ord(,A)+3)%26)
print(c,end=")
else:
print(p,end=°)
14.如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串.请编写一个函
数判断是否为回文串,同时编写测试代码检验回文串。
defisPalindronic(s)
ifs==s[::-1]:#切片操作,倒序和顺序一样
returnTrue
else:
returnFalse
s=input('inputastring/)
ifisPalindrome(s):
prinl('%sisapalindrome!'%s)
else:
print(*%sisnotapalindrome!*%s)
15.输入一串字符,统计每个字符数,用字典输出。
s=input("输入一行字符串或句子:")
char_counts={}
forcharins:
char_counts[char]=char_counts.get(char,0)+1
print(char_counls)
16.生成包含100个随机字符的字符串,然后统计前20个高频字符.
importstring,random
strl=stringoascii_letters+string.digits
sirl=sir1olower()
str2=[random.choice(strl)foriinrange(100)]
print(str2)
str_count={}
forcharinstr2:
slr_count[char]=slr_coun(.get(char,0)+1
print(str_count)
items=list(str_countoitems())
items.sort(key=lambdax:x[1],reverse=True)#以数量降序
foriinrange(20):
word»count=itemsfi]
print("%—15s%5d”%(word,count))#一表示左对齐,s表字符,d表示整数
17.统计"e:\HarryPottcrSorccrStonc.txt”文件中的英文单词及其数量,打印出单词及其个数
filename=r'HarryPotterSorcerStone.txt'
infile=open(filenameJT')#Openthefile
txt=infileoread()
words=txt.split()#以空格分割单词
words_counts={}
forwordinwords:
vvords_counts[word]=words_counts.gct(word,0)+1
print(words_counts)
18.读取文本文件data。txt中所有整数,将其排序后写入文本文件data_asc.txt中。
withopenC'data.txt'rT')as巾:
data=fporcadlincs()#文件全部读完返回字符列表3data二ZW本
文,*(F)E加6K«(V)MRU(H)
,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外语协会策划活动方案(3篇)
- 商业抽奖活动策划方案(3篇)
- 医疗领域内部举报人保护制度
- 医疗采购中的伦理审查与风险防控
- 医疗资源分配的精准化路径探索
- 医疗质量成本管控体系的构建与实施
- 医疗设备采购中的公正分配伦理
- 医疗设备采购中的专利池共享模式
- 电梯设备安全培训课件
- 学历提升没合同协议书
- 基于光声机理的激光微驱动机构:原理、设计与应用
- 2025年国家开放大学(电大)《中国近现代史纲要》期末考试备考试题及答案解析
- GB/T 46126-2025机用套筒扳手技术规范
- (新版)FSC产销监管链认证全套管理手册及程序文件(可编辑!)
- 《城镇道路养护工程施工现场检测与质量验收规范》
- 堤防工程施工规范(2025版)
- 《机械制图》电子教材
- 道法国际新闻课件教学
- 步兵引导打击课件
- 分管总务后勤副校长开学教师大会讲话:保障无死角服务有温度
- 国企招投标知识培训课件
评论
0/150
提交评论