python练习题答案.docx
- 文档编号:4534385
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:21
- 大小:154.51KB
python练习题答案.docx
《python练习题答案.docx》由会员分享,可在线阅读,更多相关《python练习题答案.docx(21页珍藏版)》请在冰豆网上搜索。
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)的返回值为496103280,那么执行语句x+=6之后,表达式id(x)==
496103280的值为。
(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的列表,语句可以写为。
([5foriin
range(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.Python3.x语句print(1,2,3,sep=':
')的输出结果为。
(1:
2:
3)
21.表达式int(4**0.5)的值为。
(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.pop()之后,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=「'c:
\test.html',那么表达式path[:
-4]+'htm'的值为。
('c:
\\test.htm')
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},那么执行语句x.update({a':
3,d':
4})之后,表达式sorted(x.items())的值为。
([('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*3.14)的结果是:
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=k//2
3.写出下面代码的运行结果。
defSum(a,b=3,c=5):
returnsum([a,b,c])print(Sum(a=8,c=2))
print(Sum(8))
print(Sum(8,2))
答:
13
16
15
4.写出下列程序输出结果
i=1
whilei+1:
ifi>4:
print("%d"%i)
i+=1
break
print("%d"%i)
i+=1
i+=1
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:
(1)
7.下面程序的执行结果是。
(1275)
s=0
foriinrange(1,101):
s+=i
ifi==50:
print(s)
break
else:
(1)
8.阅读下面的代码,输出结果为。
x=list(range(10))
forindex,valueinenumerate(x):
ifvalue==3:
x[index]=5
else:
print(x)
答:
将列表x中值为3的元素修改为5。
9.阅读下面的代码,解释其功能:
>>>importstring
>>>x=string.ascii_letters+string.digits
>>>importrandom
>>>print(".join(random.sample(x,10)))
答:
输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。
10.下面的代码输出结果为。
(3)defdemo():
x=5
x=3
demo()
print(x)
11.下面程序运行的结果为。
([5,6,1,2,3,4])
defdemo(lst,k):
ifk returnlst[k: ]+lst[: k] lst=[1,2,3,4,5,6] demo(lst,4) 12.下面程序运行的结果为appyNewYear! H。 deffoo(s): ifs=="": returns else: returns[1: ]+s[0] print(foo('HappyNewYear! ')) 13.下面程序运行的结果是{1: 'aa',2: 'bb',3: 'ff,6: 'dd',87: 'ee'}。 11=[1,2,3,6,87,3] 12=['aa','bb',‘cc','dd','ee','ff'] d={} forindexinrange(len(l1)): d[l1[index]]=l2[index] printd 14.下面程序运行的结果为[3,2][1,2]. list仁[1,2] list2=list1[: : ] list1[0]=3 print(list1,list2) 15.下面程序运行的结果为恭喜,你已获得我公司的面试机会! age,subject,college=(24,"计算机”,”非重点”) if(age>25andsubject=="电子信息工程")or(college=="重点"andsubject=="电子信息工程")or(age<=28andsubject=="计算机"): print("恭喜,你已获得我公司的面试机会! ") else: print("抱歉,你未达到面试要求") 16.下面程序运行的结果为_ fornuminrange(2,10): ifnum%2==0: continue print("Findaoddnumer",num) 1 21 321 4321 54321 654321 答案: Findaoddnumer3 Findaoddnumer5 Findaoddnumer7 Findaoddnumer9 17.下面程序打印结果: foriinrange(1,7): print(''*2*(6-i),end=”) forjinrange(i,0,-1): print(j,end="") print() 18.下面程序输入>>>rev(floveyou'返回值为youloveI defrev1(s): s=s.split() s1=‘'.join(reversed(s)) returns1 19.阅读程序,打印结果是1000 defaddInterest(balance,rate): newBalance=balance*(1+rate) balance=newBalanee defmain(): amount=1000 rate=0.05 addInterest(amount,rate) print(amount) main() 20.阅读程序,打印结果是 defdemo(newitem,old」ist=[]): old_list.append(newitem)returnold」ist defmain(): print(demo(‘a')) print(demo(‘b')) main() 答案: ['a'] ['a','b'] 21.阅读程序,打印结果是 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) 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=1,h=2): print(w,h) f() f(w=3) f(h=7) f(a=3) 答案: 12 32 17 错误 24•阅读程序,打印结果是 defsort(numberl,number2): ifnumber1 returnnumberl,number2 else: returnnumber2,numberl n1,n2=sort(3,2) print('n1is',n1) print('n2is',n2) 答案: n1is2 n2is3 25•阅读程序,打印结果是1060 defdemo(m,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)) 三、程序填空题 1.下面代码的功能是,随机生成50个介于[1,20]之间的整数,然后统计每个整数出现频率。 请把 缺少的代码补全。 importrandom x=[random.(1,20)foriinrange()] r=dict() foriinx: r[i]=r.get(i,)+1 fork,vinr.items(): print(k,v) 答: 分别填写randint、50、0 2.生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高 频字符,以5个位右对齐输出个数。 请把缺少的代码补全。 importrandomx=string.ascii_letters+string.digits+string.punctuation y=[foriinrange(1000)] d=dict() forchiny: d[ch]=d.get(ch,0)+1 items=list(d.items()) items.sort(,reverse=True) foriinrange(20): word,count=items[i] print(%(word,count)) 答案: importstring、random.choice(x)、key=lambdax: x[1]、“%-15s%5d” 3.用户输入5,打印如右图字符金字塔图形,请补全代码: n=input('输入行数: ')foriinrange(1,n+1): print(,end=‘') forjinrange(1,2*i): ■I print(&,) print() 答案: n=int(n),''*(n-i),end=" 4.质因数分解,如输入60,则得到60=2*2*3*5.请补全代码: x=eval(input(”请输入小于1000的整数: ")) k=2whilex>1: if 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==1: #大于6的偶数 x=eval(input(输入一个数")) forn1in: m1=int(math.sqrt(n1)+1) foriinrange(2,m1): #2-sqrt(n1) if: break else m2=math.ceil(math.sqrt(n2)+1)forjinrange(2,m2): ifn2%j==0andj else: print(x,'=',n1,'+',n2) 答案: range(3,x//2,2),n1%i==0,n2=x-n1,break 6. 右对齐九九乘法表,请补全代码: + **+++ ******* ********* 二二二二+二 呷*+** 答案: forjinrange(1,i+1): '%8s'%(s1),end=" 7.输出右边图形,请补充程序: fori: print(('*'*(center(30)) foriinrange(6,0,-1): print() 答案: inrange(6);('*‘(21)).center(5*n) 8.下面代码判断回文串,请补全代码: s='雾锁山头山锁雾’ low=0 high= whilelow if: #倒序和顺序不一样 print(s,"不是回文") low+=1 else: print(s,"是回文串") 答案: len(s)-1,s[low]! =s[high],break,high-=1; 9.输出右边图形,请补充程序: s="'lamateacher! Youarestudents! "' print('='*30) print('统计信息'.center(28)) print() item_width=25 line=s.count('\n')+1 word=s.split() 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) 10.输出右边图形,请补充程序: [1] 【1,1] [1,2,1] [1,3,3,1] [1,4,6,4,1] [1,5,10,10,5,1] [1,6,15,20,15,6,1] [1,7,21,35,35,21,7,1] [1,8,28,56,70,56,28,8,1] [1,9,36,84,126,126,84,36,9,1] defdemo(t): print([1]) line=[1,1]foriinrange(2,t): forjinrange(0,len(line)-1): r.append() line=[1]+r+[1] print(line) demo() 答案: print([1,1]),r=[],line[j]+line[j+1],10 四、编程题 1.编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串helloworld。 答: fp=open(r"D: \test.txt',a+') print(helloworld),file=fp) fp.close() 2.编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。 (提示: 使用切片。 ) 答: importrandom x=[random.randint(0,100)foriinrange(20)] print(x) y=x[: : 2] y.sort(reverse=True) x[: : 2]=y print(x) 3.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。 再编写测 试函数。 答: importmath defIsPrime(v): n=int(math.sqrt(v)+1) foriinrange(2,n): ifv%i==0: return'No' else: return'Yes' print(lsPrime(77)) 4.编写函数,模拟Python内置函数sorted(lst)。 答: defsorted(v): t=v[: : ] r=[] whilet: tt=min(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 练习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)