python练习题答案.docx
《python练习题答案.docx》由会员分享,可在线阅读,更多相关《python练习题答案.docx(20页珍藏版)》请在冰豆网上搜索。
python练习题答案
Python练习题库
By郑红波2017-12-19
一、填空题
1.Python标准库math中用来计算平方根的函数是__________。
(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]))的执行结果为_____________________。
([‘1’,‘2’,‘3’])
8.已知x=3,并且id(x)的返回值为0,那么执行语句x+=6之后,表达式id(x)==0的值为___________。
(False)
9.已知x=3,那么执行语句x*=6之后,x的值为________________。
(18)
10.表达式“[3]in[1,2,3,4]”的值为________________。
(False)
11.假设列表对象aList的值为[3,4,5,6,7,9,11,13,15,17],那么切片aList[3:
7]得到的值是______________________。
([6,7,9,11])
12.使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。
([5foriinrange(10)])
13.假设有列表a=['name','age','sex']和b=['Dong',38,'Male'],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。
(c=dict(zip(a,b)))
14.任意长度的Python列表、元组和字符串中最后一个元素的下标为________。
(-1)
15.Python语句''.join(list('helloworld!
'))执行的结果是____________________。
('helloworld!
')
16.转义字符’\n’的含义是___________________。
(回车换行)
17.Python语句list(range(1,10,3))执行结果为___________________。
([1,4,7])
18.切片操作list(range(6))[:
:
2]执行结果为________________。
([0,2,4])
19.表达式'ab'in'acbed'的值为________。
(False)
20.Python语句print(1,2,3,sep=':
')的输出结果为____________。
(1:
2:
3)
21.表达式int(4**的值为____________。
(2)
22.达式sorted([111,2,33],key=lambdax:
-len(str(x)))的值为____________。
([111,33,2])
23.已知列表对象x=['11','2','3'],则表达式max(x)的值为___________。
('3')
24.表达式min(['11','2','3'])的值为_________________。
('11')
25.已知列表对象x=['11','2','3'],则表达式max(x,key=len)的值为___________。
('11')
26.语句x=(3,)执行后x的值为_______________。
((3,))
27.语句x=(3)执行后x的值为________________。
(3)
28.已知x={1:
2},那么执行语句x[2]=3之后,x的值为________________。
({1:
2,2:
3})
29.字典对象的_____________方法返回字典中的“键-值对”列表。
(items())
30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作___________________________________。
([iforiinrange(100)ifi%13==0])
31.表达式3**2的值为_________。
(9)
32.表达式3*2的值为___________。
(6)
33.已知x=[3,5,7],那么执行语句x[len(x):
]=[1,2]之后,x的值为______________。
([3,5,7,1,2])
34.表达式list(zip([1,2],[3,4]))的值为________________________。
([(1,3),(2,4)])
35.已知x=[1,2,3,2,3],执行语句()之后,x的值为_____________。
([1,2,3,2])
36.表达式[xforxin[1,2,3,4,5]ifx<3]的值为_____________________。
([1,2])
37.表达式[indexforindex,valueinenumerate([3,5,7,3,7])ifvalue==max([3,5,7,3,7])]的值为__________________。
([2,4])
38.已知path=r'c:
\',那么表达式path[:
-4]+'htm'的值为__________。
('c:
\\')
39.表达式'%d,%c'%(65,65)的值为________。
('65,A')
40.表达式'Thefirst:
{1},thesecondis{0}'.format(65,97)的值为______________________________。
('Thefirst:
97,thesecondis65')
41.表达式':
'.join('abcdefg'.split('cd'))的值为______________。
('ab:
efg')
42.表达式isinstance('abcdefg',str)的值为____________。
(True)
43.表达式'Helloworld.IlikePython.'.find('python')的值为________。
(-1)
44.表达式','.join('abccc\n\n\nddd'.split())的值为______________。
('a,b,ccc,ddd')
45.已知x='123'和y='456',那么表达式x+y的值为______________。
('123456')
46.表达式'abcab'.replace('a','yy')的值为___________。
('yybcyyb')
47.已知table=''.maketrans('abcw','xyzc'),那么表达式'Hellowworld'.translate(table)的值为______________________。
('Helloccorld')
48.已知x={'b':
1,'a':
2},那么执行语句({‘a’:
3,‘d’:
4})之后,表达式sorted())的值为____________________。
([('a',3),('b',1),('d',4)])
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*的结果是:
floatclass
二、阅读程序
1.写出下面代码的执行结果。
defJoin(List,sep=None):
return(sepor',').join(List)
print(Join(['a','b','c']))
print(Join(['a','b','c'],':
'))
答:
a,b,c
a:
b:
c
2.若k为整数,下述while循环执行的次数为:
9
k=1000
whilek>1:
print(k)
k=koin(x,10)))
答:
输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。
3.下面的代码输出结果为_____________。
(3)
defdemo():
x=5
x=3
demo()
print(x)
4.下面程序运行的结果为_______________。
([5,6,1,2,3,4])
defdemo(lst,k):
ifkreturnlst[k:
]+lst[:
k]
lst=[1,2,3,4,5,6]
demo(lst,4)
5.下面程序运行的结果为_____appyNewYear!
H__________。
deffoo(s):
ifs=="":
returns
else:
returns[1:
]+s[0]
print(foo('HappyNewYear!
'))
6.下面程序运行的结果是{1:
'aa',2:
'bb',3:
'ff',6:
'dd',87:
'ee'}。
l1=[1,2,3,6,87,3]
l2=['aa','bb','cc','dd','ee','ff']
d={}
forindexinrange(len(l1)):
d[l1[index]]=l2[index]
printd
7.下面程序运行的结果为[3,2][1,2].
list1=[1,2]
list2=list1[:
:
]
list1[0]=3
print(list1,list2)
8.下面程序运行的结果为恭喜,你已获得我公司的面试机会!
age,subject,college=(24,“计算机”,”非重点”)
if(age>25andsubject=="电子信息工程")or(college=="重点"andsubject=="电子信息工程")or(age<=28andsubject=="计算机"):
print("恭喜,你已获得我公司的面试机会!
")
else:
print("抱歉,你未达到面试要求")
9.下面程序运行的结果为
fornuminrange(2,10):
ifnum%2==0:
continue
print("Findaoddnumer",num)
答案:
Findaoddnumer3
Findaoddnumer5
Findaoddnumer7
Findaoddnumer9
10.下面程序打印结果:
foriinrange(1,7):
print(''*2*(6-i),end='')
forjinrange(i,0,-1):
print(j,end="")
print()
11.下面程序输入>>>rev(‘Iloveyou’)返回值为youloveI
defrev1(s):
s=()
s1=‘’.join(reversed(s))
returns1
12.阅读程序,打印结果是1000
defaddInterest(balance,rate):
newBalance=balance*(1+rate)
balance=newBalance
defmain():
amount=1000
rate=
addInterest(amount,rate)
print(amount)
main()
13.阅读程序,打印结果是
defdemo(newitem,old_list=[]):
(newitem)
returnold_list
defmain():
print(demo(‘a’))
print(demo(‘b’))
main()
答案:
['a']
['a','b']
14.阅读程序,打印结果是
deffunc5(a,b,*c):
print(a,b)
print("lengthofcis%d,cis"%len(c),c)
func5(1,2,3,4,5,6)
答案:
12
lengthofcis4,cis(3,4,5,6)
15.阅读程序,打印结果是,3,4)
defdemo(*para):
avg=sum(para)/len(para)
g=[iforiinparaifi>avg]
return(avg,)+tuple(g)
print(demo(1,2,3,4))
16.阅读程序,打印结果是
deff(w=1,h=2):
print(w,h)
f()
f(w=3)
f(h=7)
f(a=3)
答案:
12
32
17
错误
17.阅读程序,打印结果是
defsort(number1,number2):
ifnumber1returnnumber1,number2
else:
returnnumber2,number1
n1,n2=sort(3,2)
print('n1is',n1)
print('n2is',n2)
答案:
n1is2
n2is3
18.阅读程序,打印结果是1060
defdemo(m,n):
ifm>n:
m,n=n,m
p=m*n
whilem!
=0:
r=n%m
n=m
m=r
1.return(n,p请补全代码:
x=eval(input("请输入小于1000的整数:
"))
k=2
whilex>1:
if:
print(k,end="")
x=x
enter(30))
foriinrange(6,0,-1):
print()
答案:
inrange(6);('*‘(2*i-1)).center(5*n)
2.下面代码判断回文串,请补全代码:
s='雾锁山头山锁雾'
low=0
high=
whilelowif:
#倒序和顺序不一样
print(s,"不是回文")
low+=1
else:
print(s,"是回文串")
答案:
len(s)-1,s[low]!
=s[high],break,high-=1;
3.
输出右边图形,请补充程序:
s='''Iamateacher!
Youarestudents!
'''
print('='*30)
print('统计信息'.center(28))
print()
item_width=25
line=('\n')+1
word=()
char=list(s)#包含空格、标点符号
w_num=0
forwinword:
w_num+=
print('%-*s%5d'%(item_width-3,'行数',line))
print('%-*s%5d'%(,'单词数',len(word)))
print('%-*s%5d'%(item_width-10,'字符数(包含空格)',))
print('%-*s%5d'%(item_width-11,'字符数(不包含空格)',w_num))
print('-'*30)
答案:
'-'*30;len(w);item_width-4;len(char)
4.
输出右边图形,请补充程序:
defdemo(t):
print([1])
line=[1,1]
foriinrange(2,t):
forjinrange(0,len(line)-1):
()
line=[1]+r+[1]
print(line)
demo()
答案:
print([1,1]),r=[],line[j]+line[j+1],10
三、编程题
1.编写程序,在D盘根目录下创建一个文本文件,并向其中写入字符串helloworld。
答:
fp=open(r’D:
\’,‘a+’)
print(‘helloworld’,file=fp)
()
2.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
(提示:
使用切片。
)
答:
importrandom
x=[(0,100)foriinrange(20)]
print(x)
y=x[:
:
2]
(reverse=True)
x[:
:
2]=y
print(x)
3.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。
再编写测试函数。
答:
importmath
defIsPrime(v):
n=int(v)+1)
foriinrange(2,n):
ifv%i==0:
return'No'
else:
return'Yes'
print(IsPrime(77))
4.编写函数,模拟Python内置函数sorted(lst)。
答:
defsorted(v):
t=v[:
:
]
r=[]
whilet:
tt=min(t)
(tt)
(tt)
returnr
print(sorted([1,3,2,4])
5.编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。
答:
importrandom
x=[(0,100)foriinrange(20)]
print(x)
y=x[0:
10]
()
x[0:
10]=y
y=x[10:
20]
(reverse=True)
x[10:
20]=y
x
y
x<0
0
0<=x<5
x
5<=x<10
3x-5
10<=x<20
20<=x
0
print(x)
6.编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。
如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。
答:
x=input('Pleaseinputanintegerof4digitsmeaningtheyear:
')
x=eval(x)
ifx%400==0or(x%4==0andnotx%100==0):
print('Yes')
else:
print('No')
7.编写程序,实现分段函数计算,如下表所示。
答:
x=input('Pleaseinputx:
')
x=eval(x)
ifx<0orx>=20:
print(0)
elif0<=x<5:
print(x)
elif5<=x<10:
print(3*x-5)
elif10<=x<20:
print*x-2)
8.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同学,最后打印最高分、最低分、平均分、最高分同学。
scores={"ZhangSan":
45,"LiSi":
78,"WangWu":
40,"ZhouLiu":
96,"ZhaoQi":
65,"SunBa":
90,"ZhengJiu":
78,"WuShi":
99,"DongShiyi":
60}
highest=max())
lowest=min())
average=sum())/len(scores)
highestPerson=[nameforname,scorein()if/score==highest]#分行
print(highest,lowest,average,highestPerson)
9.统计不及格的学生及成绩,要求:
给定一些学生姓名和成绩;询问用户是否还需要输入更多的学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩。
d=[["张三",76],["李四",45],["王五",83],["郑六",66],['a',54],['c',68],['b',89]]
s1=input("输入数据YorN:
").strip()#去掉前后空格
whiles1=='Y':
s2=input("请输入学生及成绩(空格隔开)")
name,grade=()
([name,grade])
#d[name]=int(grade)
s1=input("继续输入YorN:
").strip()
else:
print(d)
print("不及格的名单:
")
forname,gradeind:
iffloat(grade)<60:
print("姓名:
",name,"\t","成绩:
",grade)
10.由用户一个一个输入一个数值型列表,然后将每个元素逐一打印。
lst=[]
n=eval(input(”请输入数字个数:
”))
foriinrange(n):
number=eval(input(”请输入数字:
”))
(number)
forvalueinlst:
print(value,end=’’)
11.
序列求和,n通过用户输入:
n=int(input(“请输入N的值:
”))
s=0
fh=1
foriinrange(1,n+1):
s+=fh*1/i#求和语句
fh=-fh#正负交替
print("1-1/2+1/3-1/4...+(-1)^(n-1)/n=",s,i)
12.生成一个包含50个两位随机整数的列表,然后删除其中的所有奇数(提示从后向前删)
lst=[(1,100)foriinrange(50)]
pr